2013-03-23 2 views
1

Я использую jQuery's checkValidity() в представлениях формы ajax и все работает нормально, пока форма не имеет элемент select.checkValidity() вызывает ошибку в IE9 и ниже

Например, у меня есть страница, на которой показаны данные, основанные на выборе пользователем количества строк. (Выберите количество строк данных) ... 10, 20, 30 и т. Д. Это единственная форма на странице. Они выбирают, и все в порядке в каждом браузере, кроме IE 9 и ниже.

Вот строка в сценарии представления формы, который вызывает ошибку:

if (!$(this).get(0).checkValidity()) {return false;} 

Ошибка, которая производит в IE является:

SCRIPT438: Object doesn't support property or method 'checkValidity'

Кто-нибудь есть идея, как я могу решить эту проблему ? Прекрасно работает в любом другом браузере.

+2

http://caniuse.com/#feat=form-validation и http://html5please.com/#validation –

ответ

8

I'm using jQuery's checkValidity() ...

checkValidity() не метод JQuery, а нативный метод DOM API. Код цитирует ...

if (!$(this).get(0).checkValidity()) {return false; 

... получает ссылку на родную DOM элемент (и $(this).get(0) является излишним, он может быть заменен просто с this), а затем вызывает метод checkValidity() на него.

Он не работает в IE9 и ниже, потому что они не реализовали этот метод.

+0

Говоря о redudant * faux paus *, мне удалось «.has (this) ... not (это) '[по той же самой причине] (http://fiddle.jshell.net/userdude/Ss3xU/25/show/). Я уверен, что у вас нет никакого желания видеть, как выглядит этот двуглавый язык, и таким образом * воздерживаться от пика кода ... –

Смежные вопросы