我尝试使用远程方法,或者添加一个模仿远程方法的方法,以便能够将输入的数据发送到 Web 服务并获取包含错误状态和错误消息的 json 响应。
所以我有这个 json 响应:
{
"isError": "true",
"errorMessage": "The User Name you chose is already in use. Please enter another name."
}
我使用了远程方法来获取真/假响应,但没有使用额外的数据。
如有任何帮助,我们将不胜感激。
编辑
尝试过这个,但当然它不起作用,因为该变量不是全局变量......
$.validator.addMethod("uniqueUserName", function(value, element) {
$.ajax({
type: "POST",
url: "js/username.json",
contentType: "application/json; charset=utf-8",
dataType:"json",
data: "{'" + $('#enterEmail').attr('id') + "': '" + $('#enterEmail').val() + "'}",
dataFilter: function(data) {
var isError = data.isError;
var uniqueError = data.errorMessage;
if(isError == "true"){
return false;
}
}
})
}, uniqueError); //this last line would typically be: }, "my error message");
参见 fiddle : http://jsfiddle.net/jasonday/fWk5u/
最佳答案
我终于弄清楚了。返回成功正是我失败的地方 - 我不断返回、返回 true 或返回 false - 而它们中的每一个都会“失败”验证。
remote: {
type: "POST",
url: "js/username.json",
contentType: "application/json; charset=utf-8",
dataType:"json",
data: "{'" + $('#enterEmail').attr('id') + "': '" + $('#enterEmail').val() + "'}",
dataFilter: function(data) {
var json = JSON.parse(data);
if(json.isError == "true") {
return "\"" + json.errorMessage + "\"";
} else {
return success;
}
}
}
关于jquery 验证 - addMethod/remote - json 响应中的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707981/