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.