Если у вас есть что-то подобное в настройке DatePicker:
onSelect: function () {this.focus (); }
onClose: function () {this.focus (); }
Это приводит к тому, что элемент получает фокус и, таким образом, проверяется с помощью плагина проверки.
К сожалению, в IE7 это вызывает ошибку, так как событие фокуса вызывается дважды, а средство выбора даты сбивается с толку и снова появляется.
Решение состоит в том, чтобы не вызывать валидатор явно для элемента, а затем переместить фокус на следующий элемент для IE, чтобы сохранить порядок табуляции.
onSelect: function () {
var elementCounter, input, form;
input = $(this);
form = input.parents('form:first');
// validate the selected date
form.validate().element(this);
if ($.browser.msie && $.browser.version < 8) {
// MSIE 7 triggers focus event twice, forcing the datepicker to re-open
// to get around this, we move the focus to the next form element
for (var elementCounter = 0; elementCounter < form[0].elements.length; elementCounter++){
if (form[0].elements[elementCounter].name == input.attr('name')) {
$(form[0].elements[elementCounter+1]).focus();
break;
}
}
} else {
// give focus back to the input element to preserve tabbing
$(this).trigger('focus');
}
},
onClose: function () {
// validate the selected date
$(this).parents('form:first').validate().element(this);
}