1

场景:一个不起眼的文本字段,标记为readonly。单击时会出现一个日期选择器。当您从日期选择器中单击一个日期时,它会在该文本字段中填充以下内容:10/05/2013。

问题:我需要从 2013 年 10 月 5 日到 2013 年 5 月 10 日星期五重新格式化文本。为此,我需要捕捉文本字段内的值何时更改。这就是问题的开始。典型事件有:

  • change:不能使用它,因为它要求文本字段在检查差异之前离开焦点(假设它处于焦点);
  • keyup: 不能使用这个,因为用户没有按任何键 oO
  • paste:这里没有粘贴,至少用户没有粘贴
  • input: 我希望这会奏效,但它没有。我实际上不太确定这个事件应该什么时候触发,但这对我没有帮助:(

我的代码看起来像:

$('input[type="text"]').datepicker('hide');
// That sets up the datepicker (as per a plugin) to pop up
// when I click the text box, working fine :D

$('input[type="text"]').live('change keyup paste input', function() {
    // Trying everything out of desperation :/
    alert($(this).value());
});

问题:在所描述的场景下,当此输入字段中的文本发生变化时,我如何捕捉到?

4

2 回答 2

1

为什么不能只设置dateFormat

$('input[type="text"]').datepicker({
    dateFormat: 'DD, M d, yy'   
});

这是一个小提琴

于 2013-05-08T08:08:43.613 回答
0

在这里试试:

http://jsfiddle.net/Madthew/9nw3f/

并遵循这个:http ://api.jqueryui.com/datepicker/#option-dateFormat

为了格式化您的日期。

如果您在此处留下“隐藏”:

$('input[type="text"]').datepicker('hide');

日历没有出现。

于 2013-05-08T08:03:34.400 回答