【发布时间】:2014-10-04 13:07:40
【问题描述】:
遇到了一个非常奇怪的问题。
我刚刚在我的网站上成功实现了一个简单的 ajax 验证(耶!)。我通过 backcode 将验证连接到每个文本框的 OnFocusOut 事件,它运行完美。
当我在同一页面上调用完全相同的方法并通过 validate() 方法传递相同的参数或在 document.ready() 上添加属性 OnFocusOut 时,就会发生奇怪的错误。我的状态一直是 500。
我能够验证服务器端方法在使用 validate() 时没有成功调用,而是在触发 OnFocusOut 时运行。
网络服务适配器
function ValueChanged(target, validationDiv,valueType) {
targetControl = document.getElementById(validationDiv);
// 添加这部分,因为我猜是 null 导致它 var str = (target.value === '') ? “ “ : 目标价值;
switch (valueType) {
case "email":
webServiceAdapter.EmailExist(str);
break;
case "screenName":
webServiceAdapter.ValidScreenName(str);
break;
case "changePassword":
webServiceAdapter.PasswordCorrect(str);
break;
}
添加 OnFocusOut 回码 - 工作
txtEmail.Attributes.Add("onfocusout", "ValueChanged(this,'"+Email.ClientID+"','email')");
添加 OnFocusOut jquery - 不起作用
$("#<%=txtEmail.ClientID%>").attr("onfocusout", "ValueChanged('<%=txtEmail.ClientID%>', '<%=Email.ClientID%>', 'email')");
通过 validate() 方法调用 - 不起作用
ValueChanged('<%=txtEmail.ClientID%>', '<%=Email.ClientID%>', 'email');
编辑:
我也收到此错误“发生错误:无效的 Web 服务调用,参数缺失值:'email'。”调用 validate() 后
【问题讨论】:
-
你能发布你的 Ajax 调用的代码吗?
标签: asp.net ajax web-services