Использование JavaScript для проверки форм

0

вот мой код:

<script>
    function check(){
        var error = '';
        var name = document.forms['form1'].name.value;
        var age = document.forms['form1'].age.value;

        var checkname = new RegExp("^[a-zA-Z]{3,}$");
        var checkage = new RegExp("^[1-9]{1}+[0-9]{1}$");

        if (!checkname.test(name)) error+= 'Blad w nameniu\n';
        if (!checkage.test(age)) error+= 'Blad w ageu\n';

        if (error == '')
            return true;
        else {
            alert(error);
            return false;
        }
    }
</script>
<form name="form1">
    <p>Name: <input type="text" name="name"></p>
    <p>Age: <input type="text" name="age"></p>
    <button type="button" onclick="check()">Send</button>
</form>

Я понятия не имею, почему данный код просто не работает. Никаких действий вообще нет. Я попытался изменить <button> на <input type="sumbit"> и <form onSubmit="check()"> но не повезло.

скрипка

  • 0
    не могли бы вы добавить скрипку
  • 0
    Под действием не подразумевается, что форма не отправляется, JavaScript не запускается, или и то, и другое? Есть ли ошибки в консоли?
Показать ещё 6 комментариев
Теги:

2 ответа

3
Лучший ответ

Проблема заключается в регулярном выражении для проверки

var checkage = new RegExp("^[1-9]{1}+[0-9]{1}$");

это должно быть

 var checkage = new RegExp("^[1-9]{1}[0-9]{1}$");

И вы можете использовать firebug для firefox (это бесплатное дополнение, которое вам очень помогает).

Хорошего дня.

  • 1
    Это может быть еще проще ... /^[1-9][0-9]$/ ... иметь {1} бессмысленно
  • 0
    Да, спасибо, забыл об этом.
0

Проблема вашего кода - регулярное выражение проверки. Вместо этого:

var checkage = new RegExp("^[1-9]{1}+[0-9]{1}$");

Вы можете попробовать:

var checkage = new RegExp("/(^[1-9]?[0-9]{1}$|^100$)/");

Но IMHO, регулярное выражение - не лучший способ проверить возраст. Вы должны просто написать простую функцию, которая проверяет, находится ли число между 0 - 100 диапазоном

Надеюсь это поможет !

Ещё вопросы

Сообщество Overcoder
Наверх
Меню