删除后续ajax调用的表单数据

时间:2013-06-10 16:13:57

标签: forms jquery

我有一个链接打开一个对话模式,询问日期。当他们点击提交时,javascript获取表单数据,生成ajax调用,并返回响应。这没问题。但是,如果我再次立即再次单击相同的链接并在表单中提交新的日期,我会从第一个ajax POST获得结果。

基本上,后续的ajax调用正在使用原始的POST数据,而不是什么新的。代码提供故障排除警报。我假设我设置了一些没有重置的var,但认为这个事件处理程序被取消了“off”,然后立即重新添加,并且vars将仅在该范围内。

<script>
//Modal submit
$(document).off('click', '#SubmitAllChecks');
$(document).on('click', '#SubmitAllChecks', function(e) {
    e.preventDefault();
    var form = $('#AllChecks');
    var url = form.attr('action');
    var method = form.attr('method');
    var data = form.serializeArray();
    $.each(data, function(k,v) {
        alert(v.name + ' : ' + v.value);
    });
    $.ajax({
      url: url,
      type: method,
      data: data,
      dataType: 'json',
      beforeSend: function() {
        //add load indicator
        window.erpui.startload();
        },
      success: function(data) { 
        alert('xhr complete');
        $.each(data, function() {
          alert(this.value + ' data');
          if (this.value == 'error' && this.msg != '') {
              window.erpui.endload();
              window.erpui.notify.error(this.msg); 
              window.erpui.notify.commit();
              } 
          else if (this.value == 'success') {
              window.erpui.endload();
              window.erpui.notify.success(this.msg); 
              window.erpui.notify.commit();                      
              $('.ui-dialog').remove();
              //window.location.href="{% url all_checks %}";  
              //window.location.reload();  
              } 
          });
        },
      error: function() {
          alert('error');
          //remove load indicator   
          window.erpui.endload();   
          }
      });
  });
</script>

0 个答案:

没有答案