我正在使用jQuery远程验证来检查描述是否已被使用。
Description: {
required: true,
maxlength: 20,
remote: function () {
var newDescription = $("#txtDescription").val();
var dataInput = { geoFenceDescription: newDescription };
var r = {
type: "POST",
url: "/ATOMWebService.svc/DoesGeoFenceDescriptionExist",
data: JSON.stringify(dataInput),
contentType: "application/json; charset=utf-8",
dataType: "json",
dataFilter: function (data) {
var x = (JSON.parse(data)).d;
return JSON.stringify(!x);
}
};
return r;
}
},
我遇到的问题是,当用户没有修改文本框并返回说该描述已被使用时,会发生这种远程验证,因为它在数据库中找到了它。
如果文本字段与最初的文本字段不同,那么只能运行远程验证吗?
我注意到jQuery所需的验证有一个依赖选项,但我无法使用远程调用。
答案 0 :(得分:10)
以下是将remote
与depends
一起使用的解决方案:https://github.com/jzaefferer/jquery-validation/issues/431
答案 1 :(得分:0)
您可以使用以下事实的组合:jquery validate仅在depends返回true时访问规则的“ param”属性,以及可以将远程嵌套在“ param”属性中的事实。
rules: {
Description: {
required: true,
maxlength: 20,
remote: {
param: {
url: URL,
data: {
// your data
}
},
depends: function() {
//depends returns true if ok to go
return true || false;
}
}
},