JQuery Datepicker不会改变输入值

时间:2015-05-06 11:46:12

标签: javascript jquery jquery-ui datepicker

我使用Jquery UI Datepicker插件作为DateTimePicker http://jsfiddle.net/j5rkbnrt/1/

<input id="deliveryTime" name="deliveryTime" type="text" value="08/05/2015 10:00">

 $('#deliveryTime').datetimepicker({
     dateFormat: 'dd/mm/yy',
     timeFormat: 'HH:mm',
 });

DateTimePicker与输入字段相关联。 当我选择日期时,输入字段的值不会更改。 所以当我提交包含此输入的表单时,我总是得到默认值。

我查看了默认的jquery datepicker,但也没有改变输入的值。 https://jqueryui.com/datepicker/

我在这里缺少什么?

3 个答案:

答案 0 :(得分:10)

您将内联value 属性输入字段包含的实际值混淆。

通过属性值,我的意思是:

<input id="deliveryTime" name="deliveryTime" type="text" value="08/05/2015 10:00">

属性value="08/05/2015 10:00"。值可以是您在输入字段中输入的任何日期。

因此,即使属性为value="08/05/2015 10:00",输入的实际值(即输入字段中的任何文本)都是实际值。

当您在输入中输入新值然后使用$('#deliveryTime').val()时,您会看到新值是输入字段内文本的实际值。

如果您热衷于更改输入字段的属性,由于val()已经返回该值,我发现它有点模糊,那么您需要执行以下操作:

$('#deliveryTime').change(function(){
    $(this).attr('value', $('#deliveryTime').val());
});

所以&#34;在每次更改deliveryTime时,将value属性设置为输入值&#34;。 Fiddle!

正如我所说,这是模棱两可的。我建议只使用$('#deliveryTime').val()来实现同样的目的。

答案 1 :(得分:0)

它的作品!它更新输入的值,但在chrome devtools中它不显示此更新。尝试提交此表单并检查网络,然后您将看到所有数据都已正确发送:)

答案 2 :(得分:0)

您可以使用datetimePicker插件的onSelect事件。

 $('#deliveryTime').datetimepicker({
     dateFormat: 'dd/mm/yy',
     timeFormat: 'HH:mm',
     onSelect: function(dateText, inst) {
         $('#'+inst.id).attr('value',dateText);
    }
 });

Demo