使用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。 非常感谢你!
答案 0 :(得分:12)
您的插件的语法和用法是正确的。您需要排除故障,所以首先尝试这个
marque: {
required: true;
}
简单。是否出现错误消息?如果是,那么试试这个
marque: {
required: {
depends: function () { return true; /* or false */ }
}
}
答案 1 :(得分:7)
你真的应该能够在没有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/
答案 2 :(得分:0)
required: {
depends:function (element) {
if ($('#inter').val() == '11' && $('#inter_rson').val() == '8') {
return true;
} else if ($('#inter').val() != '11' && $('#inter_rson').val() == '8') {
return true;
} else if ($('#inter').val() == '11' && $('#inter_rson').val() != '8') {
return true
} else {
return false;
}
}
}
正如奥古斯特·米勒(August Miller)所说,当元素依赖于其他价值时,依赖就像魅力一样。如果您不使用“依赖”,则可能会停留在屏幕上,并显示验证错误。