2013-05-17 3 views
0

J'utilise le plugin de validation jQuery, il fonctionne très bien pour tous les champs mais, quand je l'utilise pour select cela ne fonctionne pasforme jquery validation pour une valeur de sélection

HTML

<form> 
    <select id="name" name="name"> 
     <option>Select</option> 
     <option value='select'>Select</option> 
     <option value='abc'>ABC</option> 
     <option value='xyz'>XYZ</option>  
    </select> 
    <input type='submit' value='Submit' /> 
</form> 

SCRIPT

var f=$("form").validate({ 
    rules: { 
     name:{ 
      required: 
       function(element) { 
        st=($(element).val() == '') || ($(element).val() == 'select'); 
        return st; 
       } 
     } 
    }, 
    messages: { 
     name: {required: "Please select name"} 
}); 

, je veux aussi stop submition après validation, peu importe si le formulaire est valid ou not.

Remarque Je ne souhaite pas utiliser $.validator.addMethod.

Je l'ai déjà recherché

  1. jQuery select box validation
  2. jQuery validate select box
  3. http://www.coldfusionjedi.com/demos/jqueryvalidation/test4.html
+0

@Zenith '' est par défaut 'vide', n'est-ce pas? –

+0

Vous avez raison :) Ne pouvez-vous pas utiliser return false pour arrêter la soumission? – lifetimes

Répondre

1
if($("#name :selected").val() == '') 
    return false; 
0

je vais dire est un plug-in qui est trop compliquer légèrement une simple vérification d'erreur! Là encore, j'ai trouvé la même chose que vous essayez de faire sur le Developer's Github Demo page.

Fiddle: http://jsfiddle.net/hAWR3/14/

<script> 
    $("#formsubmission").submit(function(event){ 

     /** Cache Result **/ 
     var tmp = $('#selectname').val(); 
     console.log("Selected Name: " + tmp); 

     if (tmp == 'select' || tmp == 'Select') { 

      /** Prevent the submission **/ 
      event.preventDefault(); 
      console.log('Unvalidated!'); 

     } else { 

      /** Submit as normal!! **/ 
      console.log('Validated!'); 
     } 

    }); 
</script> 

<form method="post" id="formsubmission"> 
    <select id="selectname" name="name"> 
     <option>Select</option> 
     <option value='select'>Select</option> 
     <option value='abc'>ABC</option> 
     <option value='xyz'>XYZ</option>  
    </select> 
    <input type='submit' value='Submit' /> 
</form> 

Note: s'il n'y a pas de valeur dans le comme dans votre exemple html, il prend la valeur à l'intérieur du <option></option> enfermé « s!

Questions connexes