丢失焦点时,检查电子邮件ID已存在于数据库中

时间:2011-03-18 11:50:30

标签: javascript asp.net textbox lost-focus

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

我试过了:

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

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

3 个答案:

答案 0 :(得分: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);”

答案 1 :(得分:0)

使用javascript Web服务代理,通过向ScriptManager添加ServiceReference

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

或者使用JQuery的ajax方法:

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

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

答案 2 :(得分:0)

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

请注意,XMLRequest是用于ajax调用的方法。从这一点来看,我认为你应该阅读有关ajax的内容。如果你使用一些库(ex jQuery)它可能内置它,那么你可以非常轻松,直接地进行一些有效的实现并验证你的数据:)