【问题标题】:Javascript Form Validation for multiple field types多种字段类型的 Javascript 表单验证
【发布时间】:2013-04-24 15:01:40
【问题描述】:

抱歉,如果这很容易,我对 Javascript 知识并不了解。

当前问题/项目的背景

带有文本字段、复选框和单选按钮的简单 HTML 表单

提交表单会将所有字段传递到一个主验证函数,该函数将逐步遍历每个字段,然后将这些字段传递给相关验证函数(空验证、电子邮件检查等)

主窗体Validation功能如下(我已经根据我正在建设的公司的要求更改了某些东西的名称)

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 组复选框,一组称为使用,一组称为数据库

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

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

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

任何帮助将不胜感激

【问题讨论】:

    标签: javascript html forms validation


    【解决方案1】:

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

    引用来自 Mozilla 开发者网络上的this page

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

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

    【讨论】:

    • 感谢以上内容,我在此阶段不愿意更改 With,因为此功能正常工作(仅作为一个功能工作的示例与另一个不工作的功能相比),我已删除 ==false 但这根本没有帮助,还有其他建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 2020-01-16
    • 2013-08-30
    • 1970-01-01
    相关资源
    最近更新 更多