道歉,如果这是任何简单的,我对Javascript知识不大。
当前问题/项目的背景
带有文本字段,复选框和单选按钮的简单HTML表单
提交表单会将所有字段传递给主验证函数,该函数将逐步执行每个字段,然后将这些字段传递给相关验证函数(空验证,电子邮件检查等)
主要表单验证功能如下(我已根据我正在建立的公司的要求更改了某些内容的名称)
function formvalidation(thisform)
{
with (thisform)
{
if (emptyvalidation(CompName,"Please Enter your name")==false) {CompName.focus(); return false;};
if (emailvalidation(CompEmail,"Please provide a valid Company Email Address")==false) {CompEmail.focus(); return false;};
if (emptyvalidation(CompEmail,"Please provide a valid Company Email Address")==false) {CompEmail.focus(); return false;};
if (emptyvalidation(Company,"Please Enter Your Company Name")==false) {Company.focus(); return false;};
if (emptyvalidation(CompWebsite,"Please Enter Your Company's Website")==false) {CompWebsite.focus(); return false;};
if (emptyvalidation(CustName,"Please Enter an Agents name")==false) {CustName.focus(); return false;};
if (emailvalidation(CustEmail,"Please provide a valid Email Address")==false) {CustEmail.focus(); return false;};
if (emptyvalidation(CustEmail,"Please provide a valid Email Address")==false) {CustEmail.focus(); return false;};
if (emptyvalidation(CustCompany,"Please Enter The Agency Name")==false) {CustCompany.focus(); return false;};
if (emptyvalidation(CustWebsite,"Please Enter The Agents Website")==false) {CustWebsite.focus(); return false;};
if (checkCheckBoxes(use,"Please Select At Least One Option For Intended Data Use")==false) {use.focus(); return false;};
if (checkCheckBoxes(database,"Please Select An Option For Database Usage")==false) {database.focus(); return false;};
}
}
Ok所以其他所有函数都能正常工作,空验证如下:
function emptyvalidation(entered, alertbox)
{
with (entered)
{
if (value==null || value=="")
{if (alertbox!="") {alert(alertbox);} return false;}
else {return true;}
}
}
我目前遇到的问题是要验证复选框,如果填写了至少一个复选框,我必须验证的功能如下
function checkCheckBoxes(entered, alertbox) {
if (
entered.checked == false)
{
return false;
} else {
return true;
}
}
基本上我们有2组复选框1组称为使用一组称为数据库
每个小组至少需要选择一个选项进行验证。
所以我试图将信息传递给上面的函数,就像它传递给其他函数一样
目前,这两个字段基本上完全忽略了验证。
任何帮助都会非常感激
答案 0 :(得分:0)
第一个尝试entered.value
?根据我的经验,with
并不总是按预期工作。
来自this page的关于Mozilla开发者网络的报道:
建议不要使用
with
,并且在ECMAScript 5严格模式下禁止使用{}。
对于该复选框,请尝试删除== false
比较,然后使用if(entered.checked)