Frage

Ich arbeite an einem Web-Formular, wo ich zu wünschen (nach Formulareinreichung), um diese Eingabefelder hervorheben, die nicht korrekt eingegeben wurden.

Das Highlight Effekt, den ich erstellen möchten eine endlos Animationsschleife zwischen background-color: #fcc ist; und #fff; in den fehlerhaften Eingabefeldern, mit jQuery. Wenn eines dieser Felder Fokus gewinnen, möchte ich die Animation des Feldes beenden.

Ich bin ziemlich off-beat in jQuery und JS, also wenn jemand mich in der richtigen Richtung zeigen könnte, ich aufrichtig dankbar sein würde.

War es hilfreich?

Lösung

Sehen Sie sich diese zwei jQuery-Plugins:

Pulse : http: / /james.padolsey.com/javascript/simple-pulse-plugin-for-jquery/

Suche Achtung : http: // verbessern. qd-creative.co.uk/demo/seekAttention/ (Link tot)

Ich denke, Pulse ist, was Sie fragen, aber aufsuchen als auch in einigen Fällen sinnvoll sein könnten.

Hier ist eine sehr rudimentär Probe I bei der Verwendung des Puls Steckers erstellt.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" type="text/javascript"></script>
<script src="http://enhance.qd-creative.co.uk/demos/pulse/pulse.jquery.js" type="text/javascript"></script>

<script type="text/javascript">
    function doSomething() {
        if ($('.BadTextBox').val() == "") {
            $('.BadTextBox').pulse({ backgroundColors: ['#fcc', '#fff'] });
        }
        else {
            $('.BadTextBox').css({'background-color': '#fff'}).stop();
        }

    }
</script>

<input type="text" class="BadTextBox" onblur="doSomething();" />

Wenn der Benutzer aus dem Textfeld navigiert beginnt es pulsiert, wenn leer. Wenn sie gehen zurück und füllen Sie es aus, es stoppt Pulsieren.

Andere Tipps

Ich habe etwas ähnliches

Zum einen die JavaScript-Funktion Variable erstellen

var PulsePut = function (){

    if ($(this).val() == "") {
        $(this).pulse({ backgroundColors: ['#ffffee', '#fff'] });
    }
    else {
        $(this).css({'background-color': '#fff'}).stop();
    } }

Dann eine Klasse mit den Eingängen hinzufügen

<input type="text" class="PulsePut" />

Schließlich initialisiert die Funktion

$(document).ready(function(){

$('.PulsePut').blur(PulsePut); }

Damit wird jede Eingabe, die Sie mit der Klasse .PulsePut Impulse, wenn leer.

hier ist, wie ich würde es tun (allgemeine Schritte):

  1. Schleife durch Eingänge, fügen Klasse „falsch“ auf jene Felder
  2. während Looping, Toggle bg von "falschen" Klassen, schlafen für wie lange
  3. auf Klick-Eingang, entfernen Sie es „falsch“ -Klasse.

Dies kann nicht funktionieren, wenn in der while-Schleife, nichts anderes ausführbar ist. Post-Fixes in den Kommentaren.

Ich würde das onblur Ereignis erfassen und eine Funktion auslösen um die Eingabe zu bestätigen:

function matchShippingEmail() {
$('#shippingEmail').css('border',validColor);
if ($('#shippingEmail').val() == '') {
    $('#shippingEmailLabel').html('email');
    return 0;
}
if ($('#shippingEmail').val().match(RegExp('^([a-zA-Z0-9._%%-]+@+[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})'))) {
    $('#shippingEmailLabel').html('email');
    return 1;
} else {
    $('#shippingEmail').css('border',invalidColor);
    $('#shippingEmailLabel').html(email error');
    return 0;
}

}

Auf Formularübermittlung, ich habe dies:

$(document).ready(function() {
$('.confirmOrder').click(function(event){
    if (!matchCardOwnerName())        {$('#cardOwnerName').css('border',invalidColor);        $('#cardOwnerName').focus();        return false;}
    if (!matchCardNumber())            {$('#cardNumber').css('border',invalidColor);            $('#cardNumber').focus();            return false;}
    if (!matchCVV2Code())             {$('#CVV2Code').css('border',invalidColor);                $('#CVV2Code').focus();                return false;}
    if (!matchCardOwnerId())        {$('#cardOwnerId').css('border',invalidColor);            $('#cardOwnerId').focus();            return false;}
    if (!matchShippingFullName())    {$('#shippingFullName').css('border',invalidColor);        $('#shippingFullName').focus();        return false;}
    if (!matchShippingAddress())    {$('#shippingAddress').css('border',invalidColor);        $('#shippingAddress').focus();        return false;}
    if (!matchShippingCity())        {$('#shippingCity').css('border',invalidColor);            $('#shippingCity').focus();            return false;}
    if (!matchShippingZipCode())    {$('#shippingZipCode').css('border',invalidColor);        $('#shippingZipCode').focus();        return false;}
    if (!matchShippingEmail())         {$('#shippingEmail').css('border',invalidColor);        $('#shippingEmail').focus();        return false;}
    if (!matchShippingPhoneNumber()){$('#shippingPhoneNumber').css('border',invalidColor);    $('#shippingPhoneNumber').focus();    return false;}
    if (!$('#agreeToTermsAndConditions').attr('checked')) {
        $('#agreeToTermsAndConditionsDiv').css('color','#FF0000');
        $('#agreeToTermsAndConditionsDiv').css('font-weight','bold');
        $('#agreeToTermsAndConditionsDiv').css('font','150%% ariel');
        return false;
    }
    $('html').css('cursor','wait');
    $('.confirmOrder').css('cursor','wait');
    $('#confirmOrderButton').attr('src','images/confirmOrderDisabled.jpg');
    $('#paymentForm').submit();
    //document.paymentForm.submit();
    $('form').get(0).setAttribute('action', '#'); //this works

    return true;
});

});

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top