Странные GET-данные, вызывающие ошибку 404 - проверка формы JavaScript - PullRequest
0 голосов
/ 26 марта 2012

Я хочу сослаться на этот пост, потому что это может относиться:

Сделать поля формы необязательными с проверкой JavaScript

У меня есть форма с тремя необязательными полями, как описано выше. Если я нажимаю кнопку отправки, появляются предупреждения JavaScript, но последним является URL-адрес, а не строка, которую я указываю в функции JavaScript (та, которая не является сильным предупреждением, но URL-адресом).

Через секунду страница пытается перейти на неверный URL:

localhost.../index.php/Don%27t%20forget%20the%20location.

Как оказалось, Don%27t%20forget%20the%20location. - это строка предупреждения, которую я имею в функции JavaScript.

Я думал, что у меня может быть какой-то странный код, который я случайно куда-то вставил, вызывая это, но я просмотрел свои файлы и не нашел ничего необычного, что могло бы вызвать это. Не уверен, что это ошибка или я что-то не так делаю.

EDIT

У меня есть функции проверки формы 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_form(form)
{
    name  = validate_name(form.name.value);
    specialty = validate_specialty(form.specialty.value);
    location = validate_location(form.location.value);

    if (name == "" || specialty == "" || location == "")
    {
        return true;
    }

    else 
    { 
        alert("You must enter at least one field:\n\n" + name + specialty + location);
        return false;
    }
}

1 Ответ

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

Это потому, что переменная location в этом случае ссылается на window.location (URL). Так что если вы измените имя переменной, это должно сработать:

userLocation = validate_location(form.location.value);

и

alert("You must enter at least one field:\n\n" + name + specialty + userLocation);
...