如何在jquery validaiton插件中添加自定义错误替换消息?

时间:2015-09-03 06:32:46

标签: javascript jquery

我想使用jquery验证插件添加自定义错误替换(http://jqueryvalidation.org/documentation/)我想自定义错误替换,如点击此处

$(function() {
    //simple example 1
    //click event for first button 

    $("#form1").validate({
        errorPlacement: function(error, element) {
            if (element.attr("name") == "business_email" ) {
                $("#bus_email").css('color',"#f42156");
                $("#busp_email").removeClass("field_validation_error hidden");
                $("#busp_email").addClass("field_validation_error");
            }
        },        
        rules: {
            business_email: "required"
        },
        messages: {
            business_email: "Please enter your firstname"
        }       
    });
});

https://jsfiddle.net/fr0dc2es/7/

2 个答案:

答案 0 :(得分:1)

使用此代码,您可以获得自定义替换消息并对 #bus_email 采取行动:

$(function() {
    //simple example 1
    //click event for first button 

    $("#form1").validate({
        rules: {
            business_email: "required"
        },
        messages: {
            business_email: "Please enter your firstname"
        },
        errorPlacement: function(error, element) {
            if (element.attr("name") == "business_email") {
                $("#bus_email").css('color',"#f42156");
                $("#busp_email").removeClass("hidden");
                $("#busp_email").html(error);
            } else {
                $("#busp_email").addClass("hidden");
                $("#busp_email").html();
                error.insertAfter(element);
            }
          }
    });
});

JQueryValidation Documentation

答案 1 :(得分:0)

在你的JSFiddle中,正在调用errorPlacement函数并且jQueryVal正常工作。

然而,

  1. 您的#busp_email已显示但为空。

  2. 您的脚本逻辑不正确。为什么要删除一个类,然后在它之后添加这个类?为什么不隐藏它?

  3. 需要检查errorPlacement中的每个值。它不是如何运作的。您不应该在预定义的错误框中为每个input定义错误放置 - 您应该通过在input之后或在指定位置创建动态错误消息来定义公共放置逻辑;或者通过在指定的警报中附加错误;但绝对不是通过检查每件物品。

    为什么默认验证错误放置不适合您?你想改变什么?描述一下,我会尽力帮助您 - 现在您只需提供无效代码而无需任何解释。