0

抱歉,如果这很容易,我对 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 组称为使用 1 组称为数据库

每个组都需要至少选择一个选项进行验证。

所以我试图将信息传递给上述函数,就像它传递给其他函数一样

目前,这两个字段的验证基本上被完全忽略了。

任何帮助将非常感激

4

1 回答 1

0

试试entered.value第一个?with根据我的经验,并不总是按预期工作。

从Mozilla 开发者网络上的这个页面引用:

with不推荐使用,并且在 ECMAScript 5 严格模式下被禁止。

对于复选框,请尝试删除== false比较并使用if(entered.checked)

于 2013-04-30T16:01:16.530 回答