Показать сообщение отдельно
  #1 (permalink)  
Старый 03.03.2015, 17:13
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Проверка формы. Регулярное выражение
Мне нужно проверить заполнено ли хотя бы одно поле <input>. Там может быть введен любой символ кроме пробелов, для этого я использовал регулярное выражение. Но почему-то при вводе одного символа срабатывает alert. Что не так? Ведь + в регулярке означает от {1,}.

<form action="" id="form" >
    <input type="text" class="auth" /> <br />
    <input type="text" class="auth" /> <br />
    <input type="text" class="auth" /> <br />
    <input type="text" class="auth" /> <br />
    <input type="submit" />
</form>

document.getElementById('form').addEventListener('submit', function(e) {
    var inputs = document.querySelectorAll('.auth'), result, i;
    
    for(i = 0; i < inputs.length; i++) {
        if( inputs[i].value.match(/^\S[a-zа-я0-9_]+/i) ) {
            result = true;
            break;
        }
    }
    
    if(!result) {
        e.preventDefault();
        alert('Заполните хотя бы одно поле!');
    }
});
Ответить с цитированием