Временное решение JavaScript для не поддерживаемых элементов и атрибутов HTML5 - PullRequest
1 голос
/ 03 марта 2012

Я использую 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.');
}

1 Ответ

1 голос
/ 03 марта 2012

Вот подсказка о том, как это начать:

if (Modernizer.input.required === false) {
    $('form').submit(function() {
         $('[required]', this).each(function() {
              if (!$(this).val()) {
                  alert('derp!');
                  return false;
              }
         }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...