在引导程序验证时启用条带按钮

时间:2014-12-23 15:22:13

标签: javascript jquery twitter-bootstrap

我想使用BootstrapValidator验证几个字段并在验证时启用条带按钮。问题是,一旦验证了任何字段,就会启用该按钮。我试图在两个字段都经过验证后启用条带按钮。(忽略datepicker字段)。下面是我的javascript代码。

$('#myform')
    .bootstrapValidator({
        message: 'This value is not valid',
        //live: 'submitted',
        icon: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            fname: {
                message: 'The first name is not valid',
                validators: {
                    notEmpty: {
                        message: 'The first name is required and can\'t be empty'
                    },
                    stringLength: {
                        min: 2,
                        max: 30,
                        message: 'The first name must be more than 6 and less than 30 characters long'
                    },
                    /*remote: {
                        url: 'remote.php',
                        message: 'The username is not available'
                    },*/
                    regexp: {
                        regexp: /^[a-zA-Z]+$/,
                        message: 'The first name can only consist of alphabetical letters'
                    }
                }
            },
            lname: {
                message: 'The last name is not valid',
                validators: {
                    notEmpty: {
                        message: 'The last name is required and can\'t be empty'
                    },
                    stringLength: {
                        min: 3,
                        max: 30,
                        message: 'The last name must be more than 6 and less than 30 characters long'
                    },
                    /*remote: {
                        url: 'remote.php',
                        message: 'The username is not available'
                    },*/
                    regexp: {
                        regexp: /^[a-zA-Z]+$/,
                        message: 'The last name can only consist of alphabetical letters'
                    }
                }
            },

        }
    })
    .on('success.form.fv', function(e) {
        // Prevent submit form
        e.preventDefault();

        var $form     = $(e.target),
            validator = $form.data('bootstrapValidator');
        $form.find('#result').html('Thanks for signing up. Now you can sign in as ' + validator.getFieldElements('fname').val()).show();
    });


    $('.stripe-button-el').attr("disabled", true );
});

这就是形式:

<form id="myform" method="post" class="form-horizontal">
    <div class="form-group" >
        <label class="col-sm-3 control-label">Full name</label>
        <div class="col-sm-4">
            <input type="text" class="form-control" name="fname" placeholder="First name" id="fname" />
        </div>
        <div class="col-sm-4">
            <input type="text" class="form-control" name="lname" placeholder="Last name" id="lname"  />
        </div>

    </div>



    <div class="form-group">
        <label class="col-sm-3 control-label">Pick a Date</label>
        <div class="col-sm-4">
            <input class="form-control" name="date" type="text" id="datepicker"/>
        </div>
        <div class="col-sm-4">
                <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
                data-key="<?php echo $stripe['publishable_key']; ?>"
                data-amount="5000" data-zip-code = "true" data-description="Whatever">
                </script>

        </div>
    </div>
    <div class="form-group" >
        <label class="col-sm-4 control-label" id='results'></label>

    </div>



</form>

1 个答案:

答案 0 :(得分:1)

您需要通过每次击键触发事件来确定表单是否有效。一旦知道其有效,您就可以对该按钮采取措施。 BootstrapValidator的API包含执行此操作所需的一切(除了捕获事件本身)。

您可以将此on方法附加到$('#myform')链:

.on('keyup', function() {
    // Get your form's validator
    var validator = $('#myform').data('bootstrapValidator');

    // Validate the form
    validator.validate();

    // Check if the form is valid
    if (validator.isValid()) {
        // Perform action on Stripe button
    }
});