我正在使用 JQuery 验证插件。我正在使用远程选项调用我的网络服务来检查公司名称是否存在。 Web 服务仅接受 JSON 数据。
我将数据从表单中的公司输入字段传递到网络服务,如下所示:
数据:“{'company': '” + $('#Company').val() + “'}”
但这总是返回公司的空白值,因此响应为 {'company':''},即正确的 JSON,但缺少公司输入字段值。
谁能解释一下为什么我总是在这里得到空白值?
感谢您的帮助, 夏兰
最佳答案
原因是
数据:"{'company': '"+ $('#Company').val() + "'}"
在页面加载时评估,而不是在进行远程调用时评估。
尝试这样声明规则:
remote: function() {
var r = {
url: "webservice.asmx",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{'company': '" + $('#Company').val() + "'}"
dataFilter: function(data) { return (JSON.parse(data)).d; }
}
return r;
}
如果您使用的是 ASP.Net Web 服务,则需要 dataFilter,因为响应将位于 json 对象的名为“d”的属性中。需要 JSON 库。
"{ d: "true"}"
关于使用 Remote 的 JQuery 验证将空数据发布到 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2663043/