我输入的类型设置为“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找不到选择器?
洛根
答案 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!