2010-11-15 13 views
0

J'utilise le plugin de validation. J'essaie de comprendre comment effacer un champ de texte, si le champ est invalide.effacer un champ de saisie s'il est invalide

mon code javascript est comme suit

$(document).ready(function() { 
$("#enrollForm").validate({ 
    rules: { 
     email: { 
      required: true, 
      email: true 
     }, 
     vemail: { 
      required: true, 
      email: true, 
      equalTo: "#email" 
     }, 
     offer_code: { 
      required: false, 
      remote: "check_code.php" 
     } 
    } 
});}); 

Je suis en train de vider le champ appelé offer_code si le champ est invalide. Est-il possible de le faire avec dans la fonction de validation?

Alex

Répondre

1

Check this out:

http://docs.jquery.com/Plugins/Validation/valid

L'exemple:

$(document).ready(function() { 
$("#enrollForm").validate({ 
    rules: { 
     email: { 
      required: true, 
      email: true 
     }, 
     vemail: { 
      required: true, 
      email: true, 
      equalTo: "#email" 
     }, 
     offer_code: { 
      required: false, 
      remote: "check_code.php" 
     } 
    } 
});}); 

$("#enrollForm").blur(function() { 
    if($("#enrollForm").valid()) { 
    //success code? 
    } else { 
    $("#enrollForm").val('') 
    } 
}); 
0

En supposant que le plug-in attribue un label pour la input avec une classe de error, alors vous pouvez le faire:

$('label.error').prev('input').val(''); 

être un peu plus précis, puisque le plugin de validation aussi attribue un attribut for aux étiquettes d'erreur:

$(document).ready(
    function(){ 

    // call to the plug-in here, input-clearing afterwards 
    // (though I'm not sure it matters, since it's dependant 
    // on CSS selectors to work, which aren't dependant on 
    // the plug-in itself). 

    $('label.error').each(
     function(){ 
     var errorInputID = $(this).attr('for'); 
     $('#'+errorInputID).val(''); 
     }); 
    }); 

Je suppose, par « valida Si vous me trompez, cela ne fonctionnera peut-être pas.

+0

où mettez-vous ainsi il s'appelle bien? Y a-t-il un handle de rappel? – Matt

+0

@Matt, puisque l'effacement de 'input' repose sur des sélecteurs css assignés (certes via le plugin), plutôt que le plugin renvoyant des données particulières, je ne pense pas que cela soit important. Bien que j'appellerais généralement le plugin * first *, cela donne un peu plus de sens à l'origine de la classe '.error'. –

1

J'ai utilisé jquery pour valider quelques formes. Par exemple, sur mon site, il y a une partie où un utilisateur doit entrer puis ressaisir son mot de passe. Si la valeur de leur deuxième mot de passe est égale à leur premier mot de passe, j'utilise jquery pour faire glisser une div qui dit "Votre passords correspondent!"

Essayez ceci:

$(document).ready(function(){ 
     $("#error").hide(); 
     $("#invite").hide(); 
     $("#confirm").hide(); 
     $("#invite_short").hide(); 
     $("#short").hide(); 

    $('.button').click(function checkPass(){ 
     var pass = $("#pass").val(); 
     var confirm = $("#con-pass").val(); 

     if(pass != confirm) 
     { 
      $("#error").slideDown(); 
      return false; 
     } 

     }); 

    $('#con-pass').keyup(function checkPass(){ 
     var pass = $("#pass").val(); 
     var confirm = $("#con-pass").val(); 

     if(pass == confirm) 
     { 
      $("#error").slideUp(); 
      $("#confirm").slideDown(); 
      return false; 
     } 

     if(pass != confirm) 
     { 
      $("#confirm").slideUp(); 
      return false; 
     } 

     }); 

    $('#pass').keyup(function checkChar(){ 
     var pass = $("#pass").val().length; 

     if(pass < 4) 
     { 
      $("#short").slideDown(); 
      return false; 
     } 

     if(pass == 4 
     || pass > 4) 
     { 
      $("#short").slideUp(); 
     } 

     }); 

     $('#invite_number').keyup(function checkCode(){ 
     var code = $("#invite_number").val(); 

     if(code.length == 8) 
     { 
      $("#invite_short").slideUp(); 
      $("#invite").slideDown(); 
      return false; 
     } 

     if(code.length < 8) 
     { 
      $("#invite").slideUp(); 
      return false; 
     } 


     }); 

     $('.button').click(function checkCode(){ 
     var code = $("#invite_number").val(); 

     if(code.length < 8) 
     { 
      $("#invite_short").slideDown(); 
      return false; 
     } 

     }); 
    }); 

Il y a beaucoup de code là. Mais, il valide également le formulaire en termes d'exigences de longueur. Si le mot de passe est inférieur à 4 caractères, il les notifie lorsqu'ils entrent leur mot de passe.

Vous obtenez l'idée .... Espérons que cela aide

Questions connexes