禁用提交按钮,直到表单数据与所有验证匹配为止?

时间:2018-02-09 12:02:38

标签: jquery forms

在使用JQuery进行表单验证时,我已在文本字段中应用了所有验证,但无法修复提交按钮条件。

提交按钮条件:默认情况下,提交按钮被禁用'。当所有文本字段都匹配所有验证时,应该启用它,这不会发生。 我的所有7个文本字段都设置为' false'当他们不符合验证时,他们就会变得“真实”。

$("#reg_form").submit(function(){

            error_firstName = false;
            error_lastName = false;
            error_emailAdd = false;
            error_pass = false;
            error_confirmPass = false;
            error_mobile = false;
            error_confirmMob = false;

            check_FirstName();
            check_LastName();
            check_email();
            check_password();
            check_confirm_password();
            check_Mobile();
            check_cMobile();

            validate();

            $("#form_firstName,#form_lasttName,#form_email,#form_pass,#form_cPass,#form_mob,#form_cMob").change(validate);

            function validate(){

                if(error_firstName === false && error_lastName === false && error_emailAdd === false && error_pass === false && error_confirmPass === false && error_mobile === false && error_confirmMob === false){
                    $("input[type=submit]").prop("disabled",false);
                    return true;
                }
                else{
                    $("input[type=submit]").prop('disabled',true);
                    return false;
                }   
            }

    });

所以请用此纠正我并挽救生命,提前谢谢你。

2 个答案:

答案 0 :(得分:0)

使用jquery验证然后自定义验证更容易也更好。 例如:

HTML

<form id="form-signin_v1" name="form-signin_v1" method="POST">
    <label>
        Username
        <input name="signin_v1[username]" type="text" data-validation="[NOTEMPTY]">
    </label>
    <label>
        Password
        <input name="signin_v1[password]" type="password" data-validation="[NOTEMPTY]">
    </label>
    <input type="submit" class="ui blue submit button" value="Login">
</form>

的javascript

$('#form-signin_v1').validate();

官方网站:https://jqueryvalidation.org/试一试。

答案 1 :(得分:0)

这可能是最简单的方法,无需使用任何额外的库。我没有对代码进行测试,但不应该很难调整。

$('#reg_form').on('change', 'input', function(){

    // Do your validation on this item
    // On validation add .valid or .invalid classes to the inputs


    // Find all inputs that aren't valid (class .valid) and aren't submit buttons
    var incorrect = $('#reg_form').find('input:not(.valid):not(type="submit")').length;

    // Add/Disable disabled property based on number of incorrect inputs
    $("input[type=submit]").prop("disabled", incorrect > 0);

});