Показать сообщение отдельно
  #1 (permalink)  
Старый 19.01.2016, 18:49
Интересующийся
Отправить личное сообщение для salexseen Посмотреть профиль Найти все сообщения от salexseen
 
Регистрация: 24.03.2014
Сообщений: 11

Форма валидация
Почему результат alert меняется постоянно, ведь если в инпуте введены числа то должно быть всегда true. Если нажимать на кнопку отправить несколько раз то сначала выводит true, а в следующий раз false и так далее. В чем может быть причина?

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form id="form">
        <div>
            <label>
                <div>Телефон</div>
                <input type="text" name="phone" value="1234">
            </label>
        </div>
        <div>
            <input type="submit" value="Отправить">
        </div>
    </form>
    <script>
    var phoneReg = new RegExp('^[0-9]+$', 'gi');
    var form = document.getElementById('form');

    form.addEventListener('submit', function(e){
        e.preventDefault();
        var inputs = this.getElementsByTagName('input');
        var input = Array.prototype.slice.call(inputs);
        input.forEach(function(item){
            if (item.name == 'phone'){
                alert(phoneReg.test(item.value));
            }
        });
    });
</script>
</body>
</html>

Последний раз редактировалось salexseen, 19.01.2016 в 19:17.
Ответить с цитированием