JQuery Datepicker不会更改输入值

spi*_*e07 6 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',
 });
Run Code Online (Sandbox Code Playgroud)

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

我查看了默认的jquery datepicker,并且也没有更改输入的值.https://jqueryui.com/datepicker/

我在这里错过了什么?

Riz*_*kel 11

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

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

<input id="deliveryTime" name="deliveryTime" type="text" value="08/05/2015 10:00">
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

$('#deliveryTime').change(function(){
    $(this).attr('value', $('#deliveryTime').val());
});
Run Code Online (Sandbox Code Playgroud)

因此,"在每次更改deliveryTime时,将value属性设置为输入值".小提琴!

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