为什么.submit()不能在带Bootstrap Datepicker的changeDate上工作?

为什么.submit()不能在带Bootstrap Datepicker的changeDate上工作?

问题描述:

我正在使用Bootstrap Datepicker,并且我希望在选择新日期时提交带有新日期值的表单 - 因此没有提交按钮。为什么.submit()不能在带Bootstrap Datepicker的changeDate上工作?

我的HTML表单是:

<form id="date-form" method="post" action="" accept-charset="utf-8" > 
<input data-date-autoclose="true" data-date-start-view="months" data-date-format="M yyyy" data-date-min-view-mode="months" type="text" id="date-input" /> 

我有这样的发布形式确定:

$('#input-date') 
    .datepicker() 
    .on('changeDate', function(){ 
     $('#date-form').submit(); 
}); 

不过,我需要得到新的日期值,因此有这样的:

$('#input-date') 
    .datepicker() 
    .on('changeDate', function(e){ 

     $('#date-form').submit(function() { 

      var date = $('#input-date').val(); 

      $.post("my-page", function() { 
       alert("success with posting " + date); 
      }); 

      // even if I just have console.log("worked"); in here it wont log 

     }); 
}); 

通过上面的代码,POST请求根本就没有做出。正如我所提到的,我也不能写入控制台。

如何获取表单发布?

您提交表单的第一个示例。

第二个示例是您将函数分配给提交事件。它不会提交表单。你将不得不打电话.trigger(“提交”);执行它。

我觉得你只是想日期选择器已经更新输入值后

$('#input-date') 
    .datepicker() 
    .on('changeDate', function(e){  
     var date = $('#input-date').val();  
     $.post("my-page", function() { 
      alert("success with posting " + date); 
     }); 
    }); 
+0

感谢的作品。 – gelviis 2013-02-27 19:49:55

setTimeout将被调用: - (!似乎是这样一个愚蠢的问题了)

$('#input-date') 
    .datepicker() 
    .on('changeDate', function(e){ 
     setTimeout(function() { 
      $('#date-form').submit(); 
     }); 
    });