Сделайте поля формы необязательными с проверкой JavaScript - PullRequest
1 голос
/ 24 марта 2012

У меня есть функции проверки формы JavaScript, например:

function validate_name(field) 
{
    if (field == "") return "Please enter the name.\n";
    return "";
}

function validate_specialty(field) 
{
    if (field == "") return "Please enter the specialty.\n";
    return "";
}

function validate_location(field) 
{
    if (field == "") return "Don't forget the location.\n";
    return "";
}

где функция, которая вызывается из onSubmit формы:

function validate_fields(form)
{
    fail  = validate_name(form.name.value);
    fail += validate_specialty(form.specialty.value);
    fail += validate_location(form.location.value);

    if (fail == "")     
        return true;
    else 
    { 
        alert(fail); 
        return false;
    }
}

Это прекрасно работает, но я решил, что не хочу, чтобы все три были обязательными. Было бы замечательно, если бы я мог сделать эти три необязательными, чтобы при заполнении любого из этих полей было бы подтверждено значение true, но если бы все три поля были пустыми, я мог бы выдать предупреждение и проверить значение false.

Любая помощь очень ценится.

1 Ответ

1 голос
/ 24 марта 2012

Вы можете сделать это, захватив результаты по отдельности и протестировав с помощью группировки OR.

function validate_fields(form)
{
    fail1 = validate_name(form.name.value);
    fail2 = validate_specialty(form.specialty.value);
    fail3 = validate_location(form.location.value);

    if (fail1 == "" || fail2 == "" || fail3 == "")     
        return true;
    else 
    { 
        alert(fail1 + fail2 + fail3); 
        return false;
    }
}
...