奇怪的GET数据导致404错误 - JavaScript表单验证

时间:2012-03-25 20:30:49

标签: javascript validation get http-status-code-404

我想参考这篇文章,因为它可能涉及:

Make Form Fields Optional with JavaScript Validation

我有一个包含三个可选字段的表单,如上所述。如果我单击提交按钮,则会出现JavaScript警报,但最后一个是URL而不是我在JavaScript函数中指定的字符串(不是警报强但是URL的字符串)。

一秒钟后,页面会尝试转到无效的网址:

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

事实证明Don%27t%20forget%20the%20location.是我在JavaScript函数中的警告字符串。

我认为我可能有一些奇怪的代码,我不小心粘贴在某个地方造成了这个但是我搜索了我的文件,并没有发现任何可能导致这种情况的异常。不确定这是一个错误还是我做错了。

修改

我有像这样的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 个答案:

答案 0 :(得分:1)

这是因为在这种情况下,变量location引用window.location(网址)。因此,如果您更改变量名称,那应该有效:

userLocation = validate_location(form.location.value);

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