我正在使用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必需的验证有一个dependents选项,但我无法让它与远程调用一起工作。
以下是将remote
与depends
一起使用的解决方案:https://github.com/jzaefferer/jquery-validation/issues/431
您可以使用以下事实的组合:jquery validate仅访问规则的"param"属性if dependents返回true,以及您可以在"aram"属性中嵌套一个remote;
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;
}
}
},
来源(参见normalizeRules
,类似1278)