Я использую Modernizr для обнаружения неподдерживаемых элементов и атрибутов HTML5 в браузерах. Если элемент / атрибут не поддерживается, я хотел бы написать быстрый обходной путь с jQuery .
В данный момент я спотыкаюсь об атрибуте required с элементом input. Моя мысль состояла в том, чтобы «обнаружить» связанный элемент формы и подключить событие jQuery .submit () формы. Но как это сделать?
Чтобы разобраться в этом, вот пример кода, в котором я исправил атрибут placeholder с помощью элемента input:
if(Modernizr.input.placeholder == false) {
alert('input placeholder not exists, perform a workaround...');
$('[placeholder]').each(function() {
var input = $(this);
var placeholder = input.attr('placeholder');
input.bind('focus', function() {
if(this.value == placeholder) {
this.value = '';
$(this).removeClass('mzr-no-placeholder');
}
}).bind('blur', function() {
if(this.value == '') {
this.value = placeholder;
$(this).addClass('mzr-no-placeholder');
}
});
if(!this.value.length) {
this.value = placeholder;
$(this).addClass('mzr-no-placeholder');
}
});
}
else {
alert('input placeholder exists.');
}
Вот решение
Благодаря Грют.
if(Modernizr.input.required == false) {
alert('Tag input required not exists, perform a workaround...');
$('form').submit(function() {
var requirementsOK = true;
$('[required]', this).each(function() {
if(!this.value.length) {
$(this).addClass('mzr-no-required');
requirementsOK = false;
}
else {
$(this).removeClass('mzr-no-required');
}
});
return requirementsOK;
});
}
else {
alert('Tag input required exists.');
}