我正在尝试使用远程方法,或者添加一个模仿远程方法的方法,以便能够将输入的数据发送到Web服务并获取带有错误状态和错误消息的json响应。 / p>
所以我有这个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");
答案 0 :(得分:6)
我最终搞清楚了。返回成功是我失败的原因 - 我一直在返回,返回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;
}
}
}
答案 1 :(得分:1)
看看validval。
我发现集成,调整(自定义验证,自定义警报)相当容易,还可以像AJ here
那样将其搞砸到AJAX中 修改强>
那么你将数据对象发布到哪里? js / username.json 做什么?
如果你在那里发布,你必须在那里做一些事情以所需的格式返回对象。
因此,如果您想查看唯一的电子邮件,我会发布到服务器,在那里进行检查,构建一个对象
object.response.success = true/false
object.response.data = "some text to display"
然后通过AJAX返回object.response。
像这样:
$.ajax({
async: false,
type: "post",
url: "somewhere_to_handle_username_check",
data: data: "{'" + $('#enterEmail').attr('id') + "': '" + $('#enterEmail').val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
// AJAX OK, return true/false
success: function(objResponse){
if (objResponse = "true"){
alert("success");
} else {
alert("failed, username already taken");
}
// AJAX Failed
error: function () {
alert("failed - AJAX failed");
}
});
我通常会验证客户端,输入了一个电子邮件地址(使用上面的validaval),然后将电子邮件地址发送到服务器以检查值并构建响应对象。
希望这会有所帮助。如果没有,请告诉我你的AJAX请求应该做什么以及js / username.json做什么。