Любой браузер, который не поддерживает тип ввода date, по умолчанию будет использовать стандартный тип, то есть textвсе, что вам нужно сделать, это проверить свойство типа (а не атрибут) , если это не так date, ввод даты не поддерживается браузером, и вы добавляете свой собственный datepicker:
if ( $('[type="date"]').prop('type') != 'date' ) {
$('[type="date"]').datepicker();
}
FIDDLE
Вы, конечно, можете использовать любой datepicker, который хотите, datepicker jQuery UI, вероятно, наиболее часто используемый, но он добавляет довольно много javascript, если вы не используете библиотеку UI для чего-либо еще, но есть сотни альтернативных datepicker выбирать из.
typeАтрибут никогда не меняется, браузер будет только падать обратно по умолчанию textтипа для свойства, поэтому нужно проверить свойство.
Атрибут по-прежнему можно использовать в качестве селектора, как в примере выше.