jQuery Validate: Pas la valeur par défaut

J’ai un élément de sélection de catégorie déroulant dans ma fiche. Le formulaire est validé avec jQuery comme suit:

$('#myForm').validate({ rules: { text: { required: true }, category: { required: true } }, messages: { text: { required: "Text required" }, category: { required: "Category required" } } 

Lors du chargement de la page, la valeur par défaut de la catégorie est: ‘—‘ (sans guillemets). Lorsque je soumets le formulaire, la validation indique que tout va bien, car «—» n’est pas rien. Comment puis-je le faire cesser de soumettre lorsque “—” est utilisé comme catégorie? Les autres catégories ressemblent à ceci: Catégorie1. Une des possibilités doit être choisie et je ne peux pas changer le choix de la liste déroulante.

Merci!!

Vous pouvez append une règle personnalisée, comme ceci:

 jQuery.validator.addMethod("notEqual", function(value, element, param) { return this.optional(element) || value !== param; }, "Please choose a value!"); 

Puis utilisez cette règle dans vos rules , comme ceci:

  category: { required: true, notEqual: "---" } 

Vous pouvez le tester ici .

J’ai utilisé le plugin de http://jqueryvalidation.org/ dans la vue MVC et modifié comme suit:

remarque: utilisation de la liste déroulante lorsque -> valeur: 0, texte: –Veuillez sélectionner–

-> append le type requirejs personnalisé

 //====find "message {: ..." messages: { required: "This field is required.", remote: "Please fix this field.", email: "Please enter a valid email address.",.... //====modify to messages: { noDefaultVal: "This field is required.", //<-- modified required: "This field is required.", remote: "Please fix this field.", email: "Please enter a valid email address.",.... 

-> append une méthode personnalisée requirejse

 //====and find "methods: {: ..." methods: { // http://docs.jquery.com/Plugins/Validation/Methods/required required: function( value, element, param ) { // check if dependency is met if ( !this.depend(param, element) ) {.... //====modify to methods: { noDefaultVal: function (value, element, param) { return this.optional(element) || value != param; }, // http://docs.jquery.com/Plugins/Validation/Methods/required required: function( value, element, param ) { .... 

-> script sur page

 $("#frmSave").validate({ //set required fields rules: { ITEM_TYPE: { required: true , noDefaultVal: "0" } } }); 

Ce qui concerne.