首页 > 解决方案 > 为什么我的 Datepicker 不更新输入字段的值?

问题描述

我有一个输入字段,当我在日期选择器中选择一个日期时我想更改其值,但它没有这样做。我想更改输入字段值的原因是因为我想最终将其作为表单的一部分提交,并且必须更新该值

<input id='datepicker' class='ok' type="text" autocomplete="off" />

<script>
    
$('#datepicker').datepicker({
        dateFormat: 'yy-mm-dd',
        changeMonth: true,
        changeYear: true,
        maxDate: '0',
        onSelect: function (d) {
       $('#datepicker').val(d);
   }
});
    
</script>

堆栈溢出中有许多类似的问题,但没有一个解决方案有效。请给个建议

标签: jquery

解决方案


jQuery 文档select如下:

当用户在其中进行文本选择时,选择事件会发送到元素。此事件仅限于<input type="text">字段和<textarea>框。

你想要的change事件

当元素的值改变时,change 事件被发送到元素。此事件仅限于<input>元素、<textarea>框和<select>元素。

此外,传递给回调函数 ( d) 的参数不是元素的值,而是一个事件对象。要获得您需要调用的值d.currentTarget.val()

onChange: function ( event ) {
    $( '#datepicker' ).val( event.currentTarget.val() );
}

推荐阅读