jQuery验证禁用提交按钮,直到表单验证

时间:2013-10-24 01:40:45

标签: jquery jquery-validation-engine

在下面的脚本中,我试图捕获验证引擎的成功事件(满足所有表单元素的验证标准),而不提交表单。

想法是禁用提交按钮,直到验证满足,然后我想启用它。 (我看过的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");
        }

2 个答案:

答案 0 :(得分:1)

function validate(){
    alert("validate");
    var valid = $("#form1").validationEngine();
    alert('Validation Engine returned : ' + valid);
    if (valid == true) {
        $("#btnEcommidEdit").prop("disabled",false);
        $("#form1").submit();
    } else {
        $("#btnEcommidEdit").prop("disabled",true);
        return false;
    }

答案 1 :(得分:1)

使用此事件来捕获表单是否有效:

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

或简单使用$(form).valid()