【发布时间】:2010-07-03 08:07:27
【问题描述】:
我正在使用 jquery 验证控制远程方法来测试数据库中是否已经存在电子邮件地址。第一次验证触发时一切正常。但是,在后续验证中,传递给 Web 服务的数据是旧数据,而不是输入到文本框中的新数据。
例如在电子邮件文本框中输入电子邮件地址,验证触发,结果符合预期。更改了电子邮件地址,再次触发验证,但在检查 FireBug 时,ajax 数据是旧数据而不是新数据。
因此,无论文本框中的内容是什么,都会始终传递以下数据。 {'email':'test@test.com'}
例如这些是规则设置。
rules: {
<%=txtGuestEmail.UniqueID%>: {
email: true,
remote: {
type: 'POST',
contentType: 'application/json; charset=utf-8',
cache: false,
async: false,
url: 'ajaxCheckout1.asmx/IsEmailAvailable',
// Use data filter to strip .d explained here http://encosia.com/2009/06/29/never-worry-about-asp-net-ajaxs-d-again/
dataFilter: function(data) {
var msg = eval('(' + data + ')');
// If the response has a ".d" top-level property, return what's below that instead.
if (msg.hasOwnProperty('d'))
return msg.d;
else
return msg;
},
dataType: 'json',
data: "{'email':'" + $('#ctl00_PageContent_txtGuestEmail').val() + "'}"
}
},
【问题讨论】:
标签: jquery plugins validation