Показать сообщение отдельно
  #6 (permalink)  
Старый 16.02.2014, 13:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Мой вариант, как я и предлагал, в декларативном стиле с fallback'ом на нативную валидацию, скрипт обходит все инпуты:

<!DOCTYPE html>
<meta charset="utf-8" />
<form onsubmit="return false">
    <input id="input" value="ффффваыа" pattern="[а-яА-ЯёЁ]+" required="" title="Разрешены только русские буквы" />
    <button type="submit">Отправить</button>
    <script>
    (function(){
        var inputs = document.getElementsByTagName('input');
        for (var i = 0, input; input = inputs[i]; i++) {
            if (input.type == 'text') {
                input.oninput = oninput;
                // input['oninput' in input ? 'oninput' : 'onpropertychange'] = oninput; // for IE8
            }
        }
        function oninput() {
            var valid = true;
            if ('required' in this.attributes) {
                valid = valid && this.value != '';
            }
            if ('pattern' in this.attributes) {
                var pattern = new RegExp('^' + this.getAttribute('pattern') + '$', 'gi');
                valid = valid && pattern.test(this.value);
            }
            if (!valid) {
                alert(this.title);
            }
        }
    })();
    </script>
</form>
__________________
В личку только с интересными предложениями
Ответить с цитированием