success.form.bv会多次触发

时间:2018-07-08 11:16:35

标签: jquery ajax bootstrapvalidator

在使用BootstrapValidator提交表单时,我真的需要一些帮助。

我有以下代码使用AJAX调用页面,当我收到成功的响应时,它将使用location.reload(true)刷新页面。

$('#indstillingForm1')
  .on('success.form.bv', function(e) {
    // Prevent form submission
    e.preventDefault();
    // Get the form instance
    var $form = $(e.target);
    // Get the BootstrapValidator instance
    var bv = $form.data('bootstrapValidator');
    $.ajax({
      url: "../bin/gem_indstilling.php",
      type: "POST",
      processData: false,
      contentType: false,
      dataType:"json",
      data: form_data,
      cache: false,
      success: function(response) {  
      if(response.result === "success") {
        $('html, body').animate({scrollTop:0}, 'slow');
        setTimeout(function(){
          location.reload(true);
        }, 2000);
      } else if(response.result === "failure") {
      }
    })
  });
}); 

问题在于.on('success.form.bv')代码被多次触发。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

 if(response.result === "success") {
        $('html, body').animate({scrollTop:0}, 'slow');
        setTimeout(function(){
          location.reload(true);
        }, 2000);
      }
  

我猜这是问题所在,因为您再次重新加载页面会导致再次发送相同的请求