проверьте, что идентификатор электронной почты уже существует в базе данных при потере фокуса - PullRequest
2 голосов
/ 18 марта 2011

Я хочу проверить, что введенный идентификатор электронной почты уже существует в моей базе данных или нет. Для этого мне нужно, чтобы текстовое поле потеряло фокус, чтобы я мог вызывать его в триггере панели обновления асинхронно. тогда как в моем случае я могу проверить, существует ли введенное значение в базе данных или нет.

Я пытался:

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

Если это так, что должно быть внутри метода javascript CheckEmailIdIsExist ()? Как проверить значения базы данных асинхронно из функции JavaScript?

Ответы [ 3 ]

1 голос
/ 18 марта 2011

посмотрите на использование jQuery для вызова AJAX WebMethod на вашем сайте:

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);"

0 голосов
/ 18 марта 2011

Хорошо, вы должны создать XMLRequest для некоторого скрипта, который должен находиться на стороне сервера. Сам скрипт должен возвращать какое-то значение, и на его основе вы можете принять решение, существует ли «emailId» в вашей базе данных или нет.

Обратите внимание, что XMLRequest - это метод, используемый для вызовов ajax. С этого момента я думаю, что вы должны прочитать о AJAX. Если вы используете какую-то библиотеку (например, jQuery), она может быть встроенной, так что вам будет очень легко и просто сделать какую-то работающую реализацию и проверить ваши данные:)

0 голосов
/ 18 марта 2011

Либо используйте прокси веб-службы javascript, добавив ServiceReference в ScriptManager

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

В качестве альтернативы используйте ajax-метод JQuery:

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

Параметр URL может быть просто обработчиком http, который принимает адрес электронной почты в качестве параметра строки запроса, проверяет базу данных и возвращает результат

...