2014-03-05 279 views
0

我在我的表单中有一个datepicker,我想用ajax调用发布表单数据。我的问题是,表单没有得到从日期选择器中选择的日期。jQuery datepicker Ajax帖子不显示日期

这里是链接到我与日期选择器使用的主题: http://wrapbootstrap.com/preview/WB00U99JJ

下面是这是表单中的日期选择器的HTML:

<div id="datepicker-inline" name="date"></div> 

这里是我的ajax后

$('#submit').on('click', function() { 
    var form = $('form'); 
    var date = $('#datepicker-inline'); 
    $.ajax('/api/service', { 
     type: 'POST', 
     contentType: 'application/json', 
     dataType: 'json', 
     data: form.serializeArray(), 
     success: function(response) { 
      console.log("Success!"); 
      $('#status').addClass('status-bar-success'); 
     }, 
     error: function() { 
      console.log('OH NOES!'); 
      console.log(form.serializeArray()); 
      console.log(date.val()); 
      $('#status').addClass('status-bar-error'); 
     } 
    }); 
}); 

我正在控制台中运行,看看我得到了什么。 form.serializeArray()正在工作,date.val()获取所选日期。我的问题是我如何将日期值放入form.serializeArray()?

* UPDATE *

HTML

<div id="datepicker-inline"></div> 
<input type="text" id="date_hidden" name="date added" class="no_show"/> 

AJAX

$('#submit').on('click', function() { 
    var form = $('form'); 
    var date = $('#datepicker-inline').val(); 
    $('#date_hidden').val(date); 
    $.ajax('/api/service', { 
     type: 'POST', 
     contentType: 'application/json', 
     dataType: 'json', 
     data: form.serializeArray(), 
     success: function(response) { 
      console.log("Success!"); 
      $('#status').addClass('status-bar-success'); 
     }, 
     error: function() { 
      console.log('OH NOES!'); 
      console.log(form.serializeArray()); 
      console.log(date); 
      $('#status').addClass('status-bar-error'); 
     } 
    }); 
}); 
+0

也许它没有'name'? (编辑:哦,现在它已经) – Incognito

+0

@Kuma我添加了名称字段,但仍然没有运气。 ajax调用完全跳过日期选择器。 – user3362859

+0

尝试检查该div上生成的html,表单不提交非输入元素。 – Incognito

回答

0

你可以有一个hidden元素旁边那div,因为它没有任何input元素。

<div id="datepicker-inline" name="date"></div> 
<input type="hidden" id="datepicker-inline_hidden" name="date"/> 

而在你提交你可以做

$('#submit').on('click', function() { 
    var form = $('form'); 
    var date = $('#datepicker-inline'); 
    $('#datepicker-inline_hidden').val(date); 
    //... your code 

所以你的约会值将被提交作为hidden元素。

+1

我刚刚得出这个结论。我正在测试... – user3362859

+0

请报告您的结果,我希望它的工作:) – Incognito

+1

我不得不更新一小部分代码。请参阅我的上述更新。谢谢! – user3362859

相关问题