Ручная проверка формы в MVC 3 и JQuery

Я хочу иметь возможность запускать проверку формы на стороне клиента, когда пользователь нажимает кнопку «GO». В настоящее время, когда выбрана кнопка «GO», полная форма не проверяется. Например, если я загружаю форму и нажимаю кнопку «Перейти», не переводя фокус на текстовое поле, ничего не проверяется и val.Valid () возвращает true. Если я ввожу недопустимые данные в текстовое поле, проверка выполняется для этого отдельного элемента; и когда я нажимаю кнопку «GO», val.Valid () возвращает false.

Итак, что я? м пытаюсь сделать, когда пользователь выбирает кнопку или другое событие, я хочу запустить проверку всех форм.

Я делаю это в MVC 3

public class TestValidationModel
{
    [Required(ErrorMessage="UserName Is Required")]
    [RegularExpression(@"(\S)+", ErrorMessage = "White space is not allowed")] 
    [StringLength(12, MinimumLength = 3)] 
    public string UserName { get; set; }

    [Required(ErrorMessage="Password Is Required")]
    [StringLength(20, MinimumLength = 3)] 
    public string Password { get; set; }

    [Required(ErrorMessage="Email Address Is Required")]
    [Display(Name = "Email Address")]
    public string EmailAddress{ get; set; }

}








@using (Html.BeginForm("", "", FormMethod.Post, new {id = "myForm"}))
{
    
@Html.LabelFor(m => m.UserName) @Html.TextBoxFor(m => m.UserName) @Html.ValidationMessageFor(m => m.UserName)
@Html.LabelFor(m => m.Password) @Html.TextBoxFor(m => m.Password) @Html.ValidationMessageFor(m => m.Password)
@Html.LabelFor(m => m.EmailAddress) @Html.TextBoxFor(m => m.EmailAddress) @Html.ValidationMessageFor(m => m.EmailAddress)
}

Обновление

Думаю, я нашел решение для моя проблема. См. ShowErrors ниже

   

. Следующая ссылка на сообщение о формах JQuery не имеет отношения к моей проблеме, но я смог найти имена методов, которые искал. http://plugins.jquery.com/content/jqueryvalidate-showerrors-issue-form-wizard

Если у кого-то есть лучший ответ, оставьте отзыв.


Обновление

Предыдущий код в некоторой степени работает в Firefox, но не в IE. Я сделал следующее, и теперь он работает в Firefox, но все еще не работает с идентификатором

    $(function () {
        $("#myForm").submit(function (e) {
            var val = $('#myForm').validate(); //<--added the semi-colon
            val.showErrors();
            alert(val.valid());


            e.preventDefault();
        });
    });


//            $("#butValidateForm").click(function () {
//                var val = $('#myForm').validate()
//                val.showErrors();
//                alert(val.valid());
//            })
    });

. Спасибо за Использование jQuery для взлома сообщений формы ASP.NET MVC за указание мне правильного направления. Но все еще не идеально

14
задан Mike Barlow - BarDev 20 February 2011 в 17:21
поделиться