我想参考这篇文章,因为它可能涉及:
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;
}
}
答案 0 :(得分:1)
这是因为在这种情况下,变量location
引用window.location
(网址)。因此,如果您更改变量名称,那应该有效:
userLocation = validate_location(form.location.value);
和
alert("You must enter at least one field:\n\n" + name + specialty + userLocation);