【发布时间】:2012-10-01 22:58:52
【问题描述】:
我在验证表单时遇到了一些麻烦。表单的设计已提供给我,但我必须编写脚本来验证表单。当我开始验证状态以及之后的所有内容时,它不起作用。在计算应付总额时,它应该会随着注册费和其他一切而改变,但我无法显示和计算价值。请帮忙。这是一个加速的 javascript 类,我已经习惯了 java。
我需要做以下事情: 当用户更改参加宴会的人数时,计算宴会总费用,显示金额,重新计算并显示总计。
当用户单击“注册”按钮时,验证必填字段是否已填写。只有在必填字段满足以下条件时才应提交表单:
- 名字、姓氏、街道和城市不能为空
- 必须选择一个州
- 必须输入 5 位邮政编码(可选 - 可以使用 5 位或 9 位形式)
- 电子邮件地址必须包含“@”符号(可选 - 找到并应用正则表达式以验证电子邮件地址的格式)
- 必须使用 3 位数的区号、3 位数的前缀和 4 位数的交换机输入电话号码
表单如下所示: https://angel.aacc.edu/AngelUploads/Content/CSI1498752012FA/Misc/Lab5.htm
目前只有这个
function validateForm()
{
var valid = false;
if(document.registration.fname.value == "")
{
alert("First name must be entered.");
return valid;
}
else if(document.registration.lname.value == "")
{
alert("Last name must be entered.");
return valid;
}
else if(document.registration.street.value == "")
{
alert("Sreet address must be entered.");
return valid;
}
else if(document.registration.city.value == "")
{
alert("City must be entered.");
return valid;
}
else if(document.registration.zip.value == /(^\d{5}$)|(^\d{5}-\d{4}$)/)
{
alert("Enter a valid zip code.");
return valid;
}
}
function calcTotal()
{
// some code here
}
【问题讨论】:
-
1) 更改为
<form onsubmit="return validateForm()" ...>2) 在函数末尾添加return valid -
我按照您的建议进行了更改,但是当我将表单留空时,它应该显示“必须输入姓名”。但它现在没有弹出任何东西。
-
我认为您应该保留您的行
valid = false;并将return valid;放在函数的末尾(在任何if语句之外)。这样,所有字段都经过验证,如果多个字段为空白或无效,用户将收到通知。如果您在每个if语句中都使用return valid;,则只会通知用户第一个无效字段。但我想这个偏好取决于你。如果你想保持这种状态,你应该在每个if语句中只使用return false;。 -
广告现在你需要在最后返回true
标签: javascript html validation