ASP.NET MVC2 RC: как перехватить или запустить проверку на стороне клиента перед запросом ajax? - PullRequest
0 голосов
/ 03 февраля 2010

У меня есть текстовое поле имени пользователя в форме, к которому применены несколько правил проверки с помощью атрибутов DataAnnotation:

[Required(ErrorMessage = "FTP login is required")]
[StringLength(15, ErrorMessage = "Must be 15 characters or fewer")]
[RegularExpression(@"[a-zA-Z0-9]*", ErrorMessage = "Alpha-numeric characters only")]
public string FtpLogin { get; set; }

У меня также есть кнопка рядом с этим текстовым полем, которая запускаетajax-запрос jQuery, который проверяет наличие имени пользователя следующим образом:

<button onclick="check(this);return false;" id="FtpLoginCheck" name="FtpLoginCheck">Available?</button>

Я ищу способ связать их вместе, чтобы проверка на стороне клиента выполнялась до вызова«check (this)» в событии onclick.

Редактировать: чтобы быть более понятным, мне нужен способ для проверки или запуска результата проверки текстового поля на стороне клиента, когда я нажимаю несвязанную кнопку рядом с ним.

Редактировать: теперь у меня есть кнопка JS, проверяющая $ ("form"). Validate (). Invalid, но не отображающая обычные сообщения проверки.Почти нет

Есть идеи?

Ответы [ 2 ]

1 голос
/ 03 февраля 2010

Хорошо, поэтому мое решение состоит в том, чтобы вручную запускать проверку на стороне клиента во время события нажатия кнопки:

        var validator =  $("form").validate({
            submitHandler: function(form) { /* do nothing */ }
        });
        if (validator.errorList.length > 0) return;
0 голосов
/ 07 марта 2010

Как насчет:

$(function() {
    $("#FtpLoginCheck").live("click", function(e){ 
          e.preventDefault();
          var $this = $(this);
          check($this);
    }
});

Это будет запущено после того, как asp.net MVC2 выполнит проверку клиента.

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