2

我想检查输入的电子邮件 ID 是否已存在于我的数据库中。为此,我需要文本框失去焦点事件,以便我可以在更新面板触发器中异步调用它。而在我的事件中,我可以检查输入的值是否存在于数据库中。

我试过了:

txtEmailId.Attributes.Add("onblur", "javascript:CheckEmailIdIsExist()");

如果是这样,CheckEmailIdIsExist() javascript 方法中应该包含什么?如何从javascript函数异步检查数据库值?

4

3 回答 3

1

查看使用 jQuery 对您网站上的 WebMethod 进行 AJAX 调用:

function CheckEmailIdIsExist(args) {
   var loc = window.location.href;
   loc = (loc.substr(loc.length - 1, 1) == "/") ? loc + "default.aspx" : loc;
   $.ajax({
       type: "POST",
       url: loc + "/" + IsUniqueEmailAddress,
       data: "{" + args + "}",
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: onSuccess,
       fail: onFail
   });
}

这将在您的服务器上:

[WebMethod]
public static bool IsUniqueEmailAddress(string emailAddress)
{
    // do some processing here
    return true;
}

我认为您需要修改调用 JavaScript 函数的方式,因为您需要传递控件 onblur="javascript:CheckEmailIdIsExist(this.value);" 的值

于 2011-03-18T12:04:00.863 回答
0

通过将 ServiceReference 添加到 ScriptManager 来使用 javascript Web 服务代理

http://www.semenoff.dk/en/Code-Corner/ASP.Net.AJAX/WebService-From-JavaScript.aspx

或者使用 JQuery 的 ajax 方法:

http://api.jquery.com/jQuery.ajax/

URL 参数可以只是一个 httphandler,它将电子邮件地址作为查询字符串参数,检查数据库并返回结果

于 2011-03-18T12:05:28.290 回答
0

好吧,您应该为应该驻留在服务器端的某个脚本创建一个 XMLRequest。脚本本身应该返回一些值,并且基于它您可以决定“emailId”是否存在于您的数据库中。

请注意,XMLRequest 是用于 ajax 调用的方法。从这一点来看,我认为您应该阅读有关 ajax 的信息。如果您使用某些库(例如 jQuery),它可能已内置,因此您可以非常简单直接地进行一些工作实现并验证您的数据:)

于 2011-03-18T12:06:03.827 回答