0

有没有办法从按键事件中的日期输入字段中获取当前值?我在按键事件中的文本输入字段上使用了 jQuery .val() 函数或直接的 javascript .value,但是当我在日期输入字段上尝试其中任何一个时(在支持它的浏览器中,例如 chrome ),我只得到一个空字符串 - 显然在输入有效日期之前不会设置该值。

我正在使用此功能允许用户仅输入六位数的日期,例如 110712,并在键入时自动添加斜杠以生成 11/07/12。当然,我可以只使用纯文本输入,但我喜欢日期类型字段在支持它的浏览器上为我提供的弹出日期选择器。

编辑:也许我不清楚我想要做什么。从附加到日期输入字段的按键处理程序中,我想获取用户当前在该字段中键入的内容。例如,如果用户已经输入了“11”,然后输入了“0”,我希望能够看到该字段的当前值为“11”。使用基本文本输入(或不支持日期输入字段的浏览器),我可以从按键事件处理程序中调用 .val() 或 .value ,它会给我一个“11”的结果。然而,在支持日期输入字段的浏览器中,调用 val() 或 .value 时我得到的只是“”。

4

2 回答 2

1
$("#clickme").keypress(function(event){
    alert(event.timeStamp);
  alert(new Date(event.timeStamp));

    var fullDate = new Date()
console.log(fullDate);
//Thu May 19 2011 17:25:38 GMT+1000 {}

//convert month to 2 digits
//  var twoDigitMonth = ((fullDate.getMonth().length+1) === 1)? (fullDate.getMonth()+1) : '0' + (fullDate.getMonth()+1);

 //  var currentDate = fullDate.getDate() + "/" + twoDigitMonth + "/" + fullDate.getFullYear();
 // console.log(currentDate);
    // $("#clickme").val(currentDate);
//08/11/2012
});

jsfiddle 工作示例

上面的例子显示current date on keypress event

于 2012-11-07T19:17:59.163 回答
1

更新:

不幸的是,这似乎无法做到。考虑 input[type="date"] 一个选择,其中选项是历史中的每个日期,而不是文本框。 http://www.html5tutorial.info/html5-date.php 上面的链接显示了其他浏览器正是以这种方式实现的。请注意,一旦您的文本框具有有效日期, .val() 就会获取该值。

您可以同时使用 input[type="text"] 和旁边的一个小的 input[type="date"] 来完成混合,以便在更改时将其值转储到文本框中。

工作示例: http: //jsfiddle.net/WaAcU/(这不会进行您的验证,只是将选择器转储到文本框中)

原答案:

使用 JQuery 按键处理程序。

$(dateField).keypress(function(){
    ...your validation code...
});​

简单的例子:http: //jsfiddle.net/zUMHr/

于 2012-11-07T19:20:06.250 回答