JQuery输入[type = date]选择器

时间:2011-09-04 05:21:10

标签: jquery html5 date input

我输入的类型设置为“date”(html5):

<input id="Employee_hireDate" class="pickDate" type="date" name="Employee[hireDate]" value="Hire Date" />

当我查看原始来源时,类型被设置为日期。但是,在Chrome开发者工具中,它不会显示。当我跑:

alert($('#Employee_hireDate').attr('type'));

它将输入类型显示为undefined。我正在使用Google Chrome v15。

有没有人知道为什么JQuery找不到选择器?

洛根

2 个答案:

答案 0 :(得分:5)

你真的不应该这样做。 HTML5日期有一些非常具体的UI和一个非常具体的API。例如,如果浏览器已完全实现type =“date”,则以下代码http://jsfiddle.net/trixta/EAZPN/在Opera中不起作用,并且无法在Chrome或任何其他浏览器中运行。

如果你想让它以某种方式可行,你必须删除日期并将其替换为文本类型。此外,您必须确保始终使用/生成日期值,格式为YYYY-MM-DD。

还有很多其他方法可以让它变得非常好。我使用webshims lib做了一个小例子,你可以在这里找到:http://jsfiddle.net/trixta/VNuct/

Webshims lib将隐藏您的原始type =“date”输入并创建一个无名的新模板,以模仿datepicker的可视化实现。它还将输入值从一个输入传输到另一个输入,并将此值转换为正确的格式。它还为您提供完整的HTML5日期API:

例如:

$('#Employee_hireDate').prop('valueAsNumber', 1315267200000);
$('#Employee_hireDate').prop('valueADate');

答案 1 :(得分:0)

如果从RC的注释中查看JSFiddle,并切换jQuery的版本,你会发现只能使用jQuery 1.6.2或更高版本获得正确的答案(“日期”)。确保您使用的是最新版本的jQuery!