jQuery 减少验证代码中的迭代

标签 jquery css html validation

我编写了一个应用程序,允许用户输入他们的个人和付款详细信息。

我对大多数字段进行了大量验证检查,以确保它们不是空白的,并希望在未来引入其他检查(例如,仅数值,无特殊字符)。

我查看我的 jQuery 代码,似乎我已经使用 if else 以冗长的方式处理它。这是我使用字段示例的 jQuery 代码:

$(document).ready(function () {

$(".submitForm").click(function () {

    if ($("#Firstname").val() == '') {
        $("#Firstname").addClass("highlight");
    } else {
        $("#Firstname").removeClass("highlight");
    }

    if ($("#Surname").val() == '') {
        $("#Surname").addClass("highlight");
    } else {
        $("#Surname").removeClass("highlight");
    }

    if ($("#email").val() == '') {
        $("#email").addClass("highlight");
    } else {
        $("#email").removeClass("highlight");
    }

    if ($("#confirmemail").val() == '') {
        $("#confirmemail").addClass("highlight");
    } else {
        $("#confirmemail").removeClass("highlight");
    }

    ......
    ......

    $("#PersonalDetailsRequired").removeClass("visuallyhidden ");
    //document.forms[0].submit();
});
});

有没有更有效的写法?

这是我的 jFiddle:http://jsfiddle.net/oampz/G3ccb/5/

此外,PersonalDetailsRequired 似乎总是出现,即使所有字段中都有值也是如此。

谢谢

更新:

在这里上传了一个新的 fiddle - http://jsfiddle.net/oampz/P9eKZ/1/

我想要做的是让#PersonalDetailsRequired 和#AddressDetailsRequired 仅在它们各自的字段未填写时显示..

谢谢

最佳答案

试试这段代码:

DEMO

$(document).ready(function () {
    $(".submitForm").click(function () {
        $("input").each(function(){
            if($(this).val() == '')
            $(this).addClass("highlight");
            else 
            $(this).removeClass("highlight");       
        $("#PersonalDetailsRequired").removeClass("visuallyhidden ");
        //document.forms[0].submit();
        });
    });
});

关于jQuery 减少验证代码中的迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21455168/

相关文章:

jquery - 在悬停时取消 substr

css - 如何根据过渡的长度在 CSS 中显示和隐藏文本

php - 分享和其他按钮的底部被切断

javascript - 使用 Javascript 调用从 MySQL DB 读取网站内容的 PHP 文件

javascript - 添加的 html 元素已添加到 DOM 但不可见

Javascript - 检查按键是否在 5 秒内被按下两次

jquery - 如何仅通过单击特定 div 来处理 div 的可见性

javascript - 将java脚本数组元素作为输入字段值放入html表单中?

javascript - 为什么 Struts2 的操作提交后需要滚动顶部

jquery - 当包含 Jquery 图形库时,$ 在 WordPress 中是未定义错误