Селектор ввода JQuery [тип = дата] - PullRequest
3 голосов
/ 04 сентября 2011

У меня есть вход с типом, установленным как «дата» (html5):

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

Когда я просматриваю необработанный источник, тип устанавливается как дата.Однако в Chrome Developer Tools это не отображается.И когда я запускаю:

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

Показывает тип ввода как неопределенный.Я использую Google Chrome v15.

Кто-нибудь имеет представление о том, почему JQuery не может найти селектор?

Логан

Ответы [ 2 ]

5 голосов
/ 04 сентября 2011

Вы действительно не должны делать это таким образом.Дата HTML5 имеет очень специфический пользовательский интерфейс и очень специфический API.Например, следующий код http://jsfiddle.net/trixta/EAZPN/ не работает в Opera и не будет работать в Chrome или любом другом браузере, если в браузере полностью реализована функция type = "date".

Если выЧтобы сделать это как-то работоспособным, вы должны удалить дату и заменить ее типом text.Кроме того, вы должны убедиться, что вы всегда используете / генерируете дату-значение в следующем формате ГГГГ-ММ-ДД.

Есть много других вещей, чтобы сделать это действительно хорошим.Я сделал небольшой пример, используя webshims lib , который вы можете найти здесь: http://jsfiddle.net/trixta/VNuct/.

Webshims lib скроет ваш исходный ввод type = "date" и создаст безымянный новый,имитировать визуальную реализацию DatePicker.Он также передает значение ввода с одного входа на другой и преобразует это значение в правильный формат.Он также предоставляет полный API даты в HTML5:

, например:

$('#Employee_hireDate').prop('valueAsNumber', 1315267200000);
$('#Employee_hireDate').prop('valueADate');
0 голосов
/ 04 сентября 2011

Если вы извлечете JSFiddle из комментария RC и переключите версии jQuery, вы обнаружите, что получаете только правильный ответ («дата») с jQuery 1.6.2 или более поздней версии. Убедитесь, что вы используете последнюю версию jQuery!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...