我正在使用这个 jQuery 时间选择器:
http://jonthornton.github.io/jquery-timepicker/
我想以人类可读的时间显示列表,但需要表单将时间提交为 HH:MM:SS。看起来这个插件不像 datepicker 那样允许用户拥有两种不同的格式。
不幸的是,我坚持使用这个系统来维护,所以我无法更改插件或服务器代码。我正在尝试通过使用输入字段的 onChange(也是插件自己的 changeTime)事件来将时间转换为正确的格式并将其写回自身。
问题是似乎在时间选择器的值实际被放入元素之前触发了 onChange 事件。在它被时间选择器的值覆盖之前,我看到了正确的转换时间。
如果我使用延迟来更新字段,它会起作用,但从用户端看它不是很好。
有什么想法吗?谢谢!
请看下面的代码:
这有效(由于延迟,它似乎需要至少 150 毫秒才能工作)
$("#" + elementId).on('change', function() {
var m = new moment($(this).val(), 'hh:mm a');
setTimeout(function(){ $($this).val(m.format('HH:mm:ss')); }, 150);
});
这不是 - 我在它被覆盖之前看到它一瞬间。
$("#" + elementId).on('change', function() {
var m = new moment($(this).val(), 'hh:mm a');
$(this).val(m.format('HH:mm:ss'));
});