bootstrap验证器:无法提交表单(验证确定)

时间:2014-11-22 17:33:58

标签: twitter-bootstrap validation modal-dialog

我在网上和pugin文档中经过长时间的研究后写了这个问题。我可能在这里错过了什么,但我找不到什么。

我正在使用bootstrapvalidator(http://bootstrapvalidator.com/)插件尝试在bootstrap模式中验证表单。

我的表单代码:

        <form method="POST" action="/venues/update" accept-charset="UTF-8" id="editForm">
           <input name="id" type="hidden" value="XYZ">
             ... 
             [other form fields...]
             ...
           <button type="submit" class="btn bg-black">Modifier</button>

        </form>

我的js验证代码:

$('#editForm')
            .bootstrapValidator({
                message: 'Cette valeur ne peut pas être utilisée.',
                feedbackIcons: {
                    valid: 'glyphicon glyphicon-ok',
                    invalid: 'glyphicon glyphicon-remove',
                    validating: 'glyphicon glyphicon-refresh'
                },
                submitHandler: function(validator, form, submitButton) {
                    alert('submit!!');
                },
                fields: {
                    venue_name: {
                        message: 'Ce nom n\'est pas valide.',
                        validators: {
                            notEmpty: {
                                message: 'Le nom du lieu ne peut pas être vide.'
                            },
                            stringLength: {
                                min: 5,
                                max: 30,
                                message: 'Le nom doit être d\'au moins 5 caractères'
                            },
                            regexp: {
                                regexp: /^[a-zA-Z0-9_ ]+$/,
                                message: 'Le nom ne peut pas contenir de caractères spéciaux.'
                            }
                        }
                    },
                    max_capacity: {
                        message: 'Cette valeur n\'est pas valide.',
                        validators: {
                            notEmpty: {
                                message: 'Ce champs ne peut pas être vide.'
                            },
                            regexp: {
                                regexp: /^[0-9]+$/,
                                message: 'Ce champs nécessite une valeur numérique entière.'
                            }
                        }
                    },
                    venue_status: {
                        validators: {
                            notEmpty: {
                                message: 'Le status doit être défini.'
                            }
                        }
                    },
                    venue_location: {
                        validators: {
                            notEmpty: {
                                message: 'La localisation doit être définie.'
                            }
                        }
                    }
                }

            });

我的问题是我的验证步骤运行良好。虽然没有提交表单,所以我尝试将此警报测试添加到调试中。警报也没有出现,这似乎表明commitHelper未被触发。我现在很失落。

1 个答案:

答案 0 :(得分:7)

您似乎正在使用旧版本的插件。 根据{{​​3}}指南,从v0.5.0开始,该插件会删除submitHandler选项。 请改用success.form.bv事件处理程序。

您可以尝试以下代码:

$('#editForm')
    .bootstrapValidator(options)
    .on('success.form.bv', function(e) {
        e.preventDefault(); // Prevent the form from submitting 
        alert('I am going to do other things');

        // ... Do whatever you want

        // If you want to submit the form, use the defaultSubmit() method
        // http://bootstrapvalidator.com/api/#default-submit
        $('#editForm').bootstrapValidator('defaultSubmit');
    });