减少jQuery(验证表单)中重复代码的最佳方法是什么

减少jQuery(验证表单)中重复代码的最佳方法是什么,jquery,wordpress,Jquery,Wordpress,这是我第一次在Stackoverflow上发表文章。我不是jQuery专家,只是尽力做到最好 我编写了一部分代码,用于在用ajax发送表单之前验证表单。我对每个输入字段条件重复相同的代码。这是我的密码: // Le nom n'a pas été entré if ($sendername.val() === "") { $sendername.addClass('commenterrorfield').after( "<span class='co

这是我第一次在Stackoverflow上发表文章。我不是jQuery专家,只是尽力做到最好

我编写了一部分代码,用于在用ajax发送表单之前验证表单。我对每个输入字段条件重复相同的代码。这是我的密码:

        // Le nom n'a pas été entré
    if ($sendername.val() === "") {
        $sendername.addClass('commenterrorfield').after( "<span class='commenterror'>Veuillez entrer votre nom</span> ");
        $sendername.on('click focusin', function() {
            $(this).removeClass().next("span").attr('class', 'commenterror-hide');
        });
        errors = true;

    }

    // Le courriel est absent ou invalide
    if ($senderemail.val() === "") {
        $senderemail.addClass('commenterrorfield').after("<span class='commenterror'>Veuillez entrer une adresse de courriel</span>");
        $senderemail.on('click focusin', function() {
            $(this).removeClass().next("span").attr('class', 'commenterror-hide');
        });
        errors = true;

    } else if (!emailReg.test($senderemail.val())) {
        $senderemail.addClass('commenterrorfield').after( "<span class='commenterror'> Votre adresse courriel semble invalide</span> "); 
        $senderemail.on('click focusin', function() {
            $(this).removeClass().next("span").attr('class', 'commenterror-hide');
        });
        errors = true;
    }

    // Le sujet n'a pas été entré
    if ($sendersubject.val() === "") {
        $sendersubject.addClass('commenterrorfield').after( "<span class='commenterror'>Veuillez écrire un commentaire</span> ");
        $sendersubject.on('click focusin', function() {
            $(this).removeClass().next("span").attr('class', 'commenterror-hide');
        });
        errors = true;
    }

    // Le commentaire n'a pas été entré
    if ($sendermessage.val() === "") {
        $sendermessage.addClass('commenterrorfield').after( "<span class='commenterror'>Veuillez écrire un commentaire</span> ");
        $sendermessage.on('click focusin', function() {
            $(this).removeClass().next("span").attr('class', 'commenterror-hide');
        });
        errors = true;
    }
//lenom n'a pasétéentré
如果($sendername.val()=“”){
$sendername.addClass('commenterrorfield')。之后(“Veuillez enter votre nom”);
$sendername.on('click focusin',function(){
$(this.removeClass().next(“span”).attr('class','commenterror hide');
});
错误=正确;
}
//courriel是残废军人
如果($senderemail.val()=“”){
$senderemail.addClass('commenterrorfield')。在(“Veuillez enter une address de courriel”)之后;
$senderemail.on('click focusin',function(){
$(this.removeClass().next(“span”).attr('class','commenterror hide');
});
错误=正确;
}如果(!emailReg.test($senderemail.val()),则为else{
$senderemail.addClass('commenterrorfield')。之后(“Votre-address-courriel-semble-invalide”);
$senderemail.on('click focusin',function(){
$(this.removeClass().next(“span”).attr('class','commenterror hide');
});
错误=正确;
}
//苏杰特酒店
如果($sendersubject.val()=“”){
$sendersubject.addClass('commenterrorfield')。在(“Veuillezécrire un commentaire”)之后;
$sendersubject.on('click focusin',function(){
$(this.removeClass().next(“span”).attr('class','commenterror hide');
});
错误=正确;
}
//n'a pasétéentré评论
如果($sendermessage.val()=“”){
$sendermessage.addClass('commenterrorfield')。在(“Veuillezécrire un commentaire”)之后;
$sendermessage.on('click focusin',function(){
$(this.removeClass().next(“span”).attr('class','commenterror hide');
});
错误=正确;
}
使用函数减少此代码的最佳方法是什么。。。我希望使用该函数不重复在每个if条件下的这部分代码:

            $senderemail.addClass('commenterrorfield').after("<span class='commenterror'>Veuillez entrer une adresse de courriel</span>");
        $senderemail.on('click focusin', function() {
            $(this).removeClass().next("span").attr('class', 'commenterror-hide');
        });
        errors = true;
$senderemail.addClass('commenterrorfield')。之后(“Veuillez enter une address de courriel”);
$senderemail.on('click focusin',function(){
$(this.removeClass().next(“span”).attr('class','commenterror hide');
});
错误=正确;

非常感谢你

您可以创建一个接受两个参数的函数—一个用于元素,另一个用于错误消息。它看起来是这样的:

功能错误(el,err){
el.addClass('commenterrorfield')。在(“+err+”)之后;
el.on('单击聚焦',函数(){
$(this.removeClass().next(“span”).attr('class','commenterror hide');
});
错误=正确;
}
//列名
如果($sendername.val()=“”){
淋浴器($sendername,'Veuillez enter votre nom');
}
//courriel是残废军人
如果($senderemail.val()=“”){
淋浴器($senderemail,'Veuillez enter une address de courriel');
}如果(!emailReg.test($senderemail.val()),则为else{
淋浴器($senderemail,'Votre adrese courriel semble invalide');
}
//苏杰特酒店
如果($sendersubject.val()=“”){
淋浴器($sendersubject,'Veuillezécrire un commentaire');
}
//n'a pasétéentré评论
如果($sendermessage.val()=“”){
淋浴器($sendermessage,'Veuillezécrire un commentaire');

}
首先,感谢您的快速回复。这太疯狂了,我在这个网站上的第一个问题,在不到10分钟内回答了,然后。。。你的代码工作起来很有魅力!!非常感谢你的帮助。我写了很多代码(受web上许多代码的启发)。所有的工作都很好,但我现在尝试简化这些代码的许多部分。哦,当然!再次谢谢你,先生。