可能重复:
HTML5类型检测和插件初始化
<input type=date>
应该使用(可选的)用户代理提供的datepicker创建输入,但是尚未得到广泛支持,因此我们使用的是jQuery UI Datepicker。我们如何允许浏览器使用自己的日期选择器,并且仅当浏览器没有这种东西时才使用jQuery UI?
目前,我认为只有Opera内置了日期选择器,但是对Opera的测试显然是不好的。有没有一种方法可以检测到此功能(如果可以通过便携式方式检测到)?
可能重复:
HTML5类型检测和插件初始化
<input type=date>
应该使用(可选的)用户代理提供的datepicker创建输入,但是尚未得到广泛支持,因此我们使用的是jQuery UI Datepicker。我们如何允许浏览器使用自己的日期选择器,并且仅当浏览器没有这种东西时才使用jQuery UI?
目前,我认为只有Opera内置了日期选择器,但是对Opera的测试显然是不好的。有没有一种方法可以检测到此功能(如果可以通过便携式方式检测到)?
<input class=datepicker>并始终使用jquery ui datepicker(老式方式)。
Answers:
下面的方法检查大多数浏览器是否支持某些输入类型:
function checkInput(type) {
var input = document.createElement("input");
input.setAttribute("type", type);
return input.type == type;
}
但是,正如simonox在评论中提到的那样,某些浏览器(如Android普通浏览器)假装它们支持某种类型(如日期),但它们不提供用于输入日期的UI。因此,simonox使用在date字段中设置非法值的技巧改进了实现。如果浏览器清除此输入,它也可以提供日期选择器!!!
function checkDateInput() {
var input = document.createElement('input');
input.setAttribute('type','date');
var notADateValue = 'not-a-date';
input.setAttribute('value', notADateValue);
return (input.value !== notADateValue);
}