jQueryValidate – 必填字段 – depends不起作用

使用jQueryValidate,我只是在另一个特定字段为空时尝试创建一个字段。 所以,在互联网上搜索后,我这样做了:

rules: { marque: { required: { depends: function() { if (($('#add_marque').val() == "Ajouter une marque" && $('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) { return true; } else { return false; } } } } } 

不幸的是,它不起作用。 但是,如果我这样做:

 depends: function() { if (($('#add_marque').val() == "Ajouter une marque" && $('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) { alert("Here!"); return true; } else { return false; } } 

出现警告框。 所以,我的测试似乎有效。 谁能告诉我我做错了什么? 我正在使用jQuery 1.8.3和qTip2与jQueryValidate。 非常感谢你!

您的语法和插件的使用是正确的。 您需要排除故障,所以首先尝试这个

 marque: { required: true; } 

简单。 是否出现错误消息? 如果是,那就试试吧

 marque: { required: { depends: function () { return true; /* or false */ } } } 

你真的应该能够在没有depends选项的情况下执行此操作,只需使函数直接在required对象上工作:

 rules: { marque: { required: function() { if (($('#add_marque').val() == "Ajouter une marque" && (('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) { return true; } else { return false; } } } } 

在这里查看一个有用的简单示例: http : //jsfiddle.net/ryleyb/3hqH6/1/