Функция проверки не работает хорошо - PullRequest
0 голосов
/ 30 сентября 2011

Я создал функцию в JavaScript для проверки данных html-формы, мой код приведен ниже:

function checkPetitionForm_ff() {
    if (document.petition_form.petition_firstname.value == "FIRST NAME" || document.petition_form.petition_firstname.value == "") {
        alert("Please enter your First Name!")
        document.petition_form.petition_firstname.focus();
        return false;
    }

    if (document.petition_form.petition_lastname.value == "LAST NAME" || document.petition_form.petition_lastname.value == "") {
        alert("Please enter your Last Name!")
        document.petition_form.petition_lastname.focus();
        return false;
    }

    if (document.petition_form.petition_age.value == "AGE" || document.petition_form.petition_age.value == "") {
        alert("Please enter your Age!")
        document.petition_form.petition_age.focus();
        return false;
    }

    if (document.petition_form.state.value == "Select State") {
        alert("Please select your state!")
        document.petition_form.state.focus();
        return false;
    }

    if (document.petition_form.petition_address.value == "HOME ADDRESS" || document.petition_form.petition_address.value == "") {
        alert("Please enter your address!")
        document.petition_form.petition_address.focus();
        return false;
    }

    if (document.petition_form.zip.value == "ZIP CODE" || document.petition_form.zip.value == "") {
        alert("Please enter your Zipcode!")
        document.petition_form.zip.focus();
        return false;
    }

    if (document.petition_form.phone2.value == "PHONE" || document.petition_form.phone1.value == "" || isNumeric(document.petition_form.phone1.value) == false) {
        alert("Please enter the complete phone No!")
        document.petition_form.phone2.focus();
        return false;
    }

    if (document.petition_form.phone1.value == "PHONE" || document.petition_form.phone1.value == "" || isNumeric(document.petition_form.phone1.value) == false) {
        alert("Please enter the complete phone No!")
        document.petition_form.phone1.focus();
        return false;
    }


    if (document.petition_form.phone3.value == "PHONE" || document.petition_form.phone1.value == "" || isNumeric(document.petition_form.phone1.value) == false) {
        alert("Please enter the complete phone No!")
        document.petition_form.phone3.focus();
        return false;
    }

    if (document.petition_form.level.value == "YOUR LEVEL OF EDUCATION") {
        alert("Please select your level of education!")
        document.petition_form.level.focus();
        return false;
    }

    if (document.petition_form.degree.value == "DEGREE OF INTEREST") {
        alert("Please select your degree!")
        document.petition_form.degree.focus();
        return false;
    }

    if (!(document.getElementById(edu).checked)) {
        alert("Please select  Education!")
        document.petition_form.edu.focus();
        return false;
    }


    else {
        return true;
    }

}

Проверки работают хорошо до поля "phone2" и не завершат проверку после этого.

Буду признателен, если вы поможете мне и посоветуете, как решить эту проблему.

Ответы [ 3 ]

1 голос
/ 30 сентября 2011

В этой строке вы проверяете phone2 только в первом условии, остальные phone1.

document.petition_form.phone2.value=="PHONE" || document.petition_form.phone1.value=="" || isNumeric(document.petition_form.phone1.value)==false

Также имейте в виду, что вы делаете то же самое для phone3.

1 голос
/ 30 сентября 2011

Я думаю, что вы получаете исключение, поскольку isNumeric не является глобальной функцией JavaScript.Вы должны определить его на своей странице (проверьте Проверка десятичных чисел в JavaScript - IsNumeric () для чистой реализации isNumeric).Также вам следует окружить ваш вызов метода обработкой исключения, чтобы получить более подробную информацию об исключении.

1 голос
/ 30 сентября 2011

Это похоже на простую ошибку копирования / вставки.Обратите внимание, что petition_form члены, на которые ссылаются после phone2, являются phone1 ... это не имеет смысла.Сравните эту строку с вашей следующей проверкой, где все участники являются phone1.

Итак, эта строка:

      if (document.petition_form.phone2.value == "PHONE" || 
          document.petition_form.phone1.value == "" || 
isNumeric(document.petition_form.phone1.value) == false) {

должна выглядеть так:

      if (document.petition_form.phone2.value == "PHONE" || 
          document.petition_form.phone2.value == "" || 
isNumeric(document.petition_form.phone2.value) == false) {

(Кодвыстроен таким образом, чтобы подчеркнуть различия.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...