首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BootstrapValidator未显示成功信息

BootstrapValidator未显示成功信息
EN

Stack Overflow用户
提问于 2015-11-24 17:47:29
回答 1查看 3.2K关注 0票数 0

编辑:我借用的原始代码是http://codepen.io/jaycbrf/pen/iBszr。唯一的区别是HTML将action=' ' (它是空白的,所有php代码与表单位于同一个文件中)更改为action='mail-form.php'__。这就是javascript不能工作的原因吗?

我正在使用引导验证器对我的php表单进行验证。它工作得很好,但是当我提交表单时,它不是显示成功通知,而是转到表单的action页面。该表格有效,电子邮件被发送。

这是我的表格声明:

代码语言:javascript
复制
<form class="well form-horizontal" action="mail-form.php" method="post"  id="contact_form">

下面是引导验证程序在我的javascript中提交表单的调用:

代码语言:javascript
复制
  $(document).ready(function() {
    $('#contact_form').bootstrapValidator({
        // To use feedback icons, ensure that you use Bootstrap v3.1.0 or later
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        // Removed validation rules for brevity //
       .on('success.form.bv', function(e) {
            $('#success_message').slideDown({ opacity: "show" }, "slow") // Do something ...
                $('#contact_form').data('bootstrapValidator').resetForm();

            // Prevent form submission
            e.preventDefault();

            // Get the form instance
            var $form = $(e.target);

            // Get the BootstrapValidator instance
            var bv = $form.data('bootstrapValidator');

            // Use Ajax to submit form data
            $.post($form.attr('action'), $form.serialize(), function(result) {
                console.log(result);
            }, 'json');
        });
});

当我在验证成功后提交表单时,它将引导我到表单的action,即mail-form.php。我原以为它只是像上面在javascript中所说的那样显示#success-message div,但它没有。只打开mail-form.php,这是一个空白页,它回显了提交的字段值(用于我的调试)。

如果有帮助的话,这里是我在页面页脚中添加脚本文件的地方。

代码语言:javascript
复制
  ...
  </footer>
    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <?php if (basename($_SERVER['PHP_SELF']) == "contact.php") { ?>
      <script src="https://www.google.com/recaptcha/api.js"></script>
    <?php } ?>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-validator/0.4.5/js/bootstrapvalidator.min.js"></script>
    <script src="js/scripts.js"></script>
</body>

我总是被告知任何脚本声明都需要在文件的末尾,所以它们在页面完全加载之前就被加载了。我不知道这是否是我遇到问题的原因(我对jquery非常陌生)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-24 18:13:13

添加此提交事件以防止窗体在单击时提交。

代码语言:javascript
复制
$('#contact_form').on('submit',function(e){
e.preventDefault();
});

或者使用以下功能:

代码语言:javascript
复制
submitHandler: function(validator, form, submitButton) {}

请参阅:http://codepen.io/anon/pen/MadxaE?editors=001

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33900448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档