Проверка jQuery отключить кнопку отправки до тех пор, пока форма не будет проверена

В приведенном ниже сценарии я пытаюсь зафиксировать успешное событие механизма проверки (выполняются все критерии проверки элементов формы) без отправки формы.

Идея состоит в том, чтобы отключить кнопку отправки до тех пор, пока не будет выполнена проверка, а затем я бы хотел ее включить. (Примеры validationEngine, которые я видел, похоже, требуют, чтобы кнопка отправки была включена для отправки формы, а затем ее проверяли после отправки)

Однако я не могу заставить сработать «действительный» метод в моей функции validate (). Есть идеи, что я делаю не так?

    $(document).ready(function() {
        /* disable the submit button until required form elements are enabled */ 
        $('#btnEcommidEdit').attr('class','button disabled');
        $('#btnEcommidEdit').attr("disabled","disabled");

        /* initiate validation */
        $("#form1").validationEngine(
        {
            inlineValidation: true
        });

        /* check form elements to enable submit button */
        $('#email2,#confirm1,#confirm2').change(function() {
            validate();
        });
    });

    function validate(){
        var valid = $("#form1").validationEngine();
        if (valid)
        $("#btnEcommidEdit").attr('disabled','');
        else
        $("#btnEcommidEdit").attr("disabled","disabled");
        }

person RegEdit    schedule 24.10.2013    source источник


Ответы (2)


Используйте это событие, чтобы определить, действительна ли форма:

submitHandler: function (form) {
    // for demo
    if ($(form).valid()) {
        // valid
    } else {
        //do some error handling
    }
    return false; // to not submit form
}

или простое использование $(form).valid()

person Nick    schedule 18.12.2013

person    schedule
comment
Проблема в том, что допустимая переменная, похоже, не содержит значения успеха / неудачи метода validationEngine (). Мне нужен правильный тест. - person RegEdit; 24.10.2013
comment
Итак, в вашей функции validate() переменная valid возвращает false? Затем вам нужно посмотреть, что происходит в этом .validationEngine() методе. Вы пробовали valid == true, вот так? - person DevlshOne; 24.10.2013
comment
Он возвращает истину, независимо от того, действительны ли все элементы проверки. Я думаю, что использую неправильный тест. - person RegEdit; 24.10.2013