Метод обратной передачи не запускается с помощью jQuery Validate - PullRequest
1 голос
/ 10 января 2011

У меня странное поведение моего скрипта jQuery Validate.

У меня есть простая форма с кнопкой отправки (ID = _btnSave).Я проверяю три текстовых поля: имя, фамилия и адрес электронной почты.

[НЕ РАБОТАЕТ] - Когда форма заполнена правильно, метод моей кнопки отправки не запускается: OnClick = "_ btnSave_Click".

[РАБОТАЕТ] - я записываю неправильный адрес электронной почты, затем исправляю его, нажимаю кнопку отправки, вызывается мой метод на стороне сервера.

Чтобы подвести итог ситуации: если я невызвать проверку электронной почты, _btnSave_Click не срабатывает.

Страница обновляется в обоих случаях.

<asp:Button ID="_btnSave" OnClick="_btnSave_Click" CssClass="button big default" runat="server" Text="<%$ Resources:Resource, SAVE_CHANGES %>" />

$("#form1").validate({
            rules:{
                <%=_txtEmail.UniqueID %>:{ minlength:5, required:true, email:true, 
                    remote: { 
                        url: "/Services/ValidatorService.asmx/ValidateEmail",
                        dataType:"json",
                        type:"post",
                        data: { 
                            email: function() { return $("#<%=_txtEmail.ClientID%>").val();},
                            contactUID: function() { return $("#<%=_hidContactUID.ClientID%>").val();}
                        }
                    }
                },
                <%=_txtFirstName.UniqueID %>:   { required:true},
                <%=_txtLastName.UniqueID %>:    { required:true},
            },
            invalidHandler: function(form, validator) {
                errorContainer.fadeIn(); 
            },
            errorElement: "span",
            errorClass:"errortxt",
            highlight: function(element, errorClass) {
                $(element).parent().parent().addClass("error");
            },
            unhighlight: function(element, errorClass) { 
                    $(element).parent().parent().removeClass("error");
                if (this.numberOfInvalids() == 0) { 
                    errorContainer.fadeOut(); 
                }
            },
            messages: { <%=_txtEmail.UniqueID %>: { remote : "<%=EmailUsed %>" }
            },
            errorPlacement: function(error, element) {
                    error.insertAfter(element);
            }
        });

        $("input").click(function(){_defaultButton = $("#<%=_btnSave.ClientID%>");});   
    });

Спасибо за вашу помощь.

Грег

1 Ответ

3 голосов
/ 10 декабря 2013

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

        $("#form1").validate({
            submitHandler: function (form) {
                __doPostBack("_btnSave", "OnClick");
            }
            // your other options
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...