jquery错误放置

jquery错误放置,jquery,errorplacement,Jquery,Errorplacement,我有以下资料: $("#pmtForm").validate({ rules: { acct_name: "required", acct_type: "required", acct_routing: { required:

我有以下资料:

$("#pmtForm").validate({
            rules: {
                    acct_name: "required",                        
                    acct_type: "required",  
                    acct_routing:  { 
                                     required: true,    
                                     digits: true,
                                     exactLength:9
                                     }, 
                    acct_num:      { 
                                     required: true,    
                                     digits: true
                                     }, 
                    c_acct_routing:{ 
                                     equalTo: '#acct_routing'
                                     },     
                    c_acct_num:    { 
                                     equalTo: '#acct_routing'
                                     }      
            },
            messages: {
                    acct_name: "<li>Please enter an account name.</li>",
                    acct_type: "<li>Please choose an account type.</li>",
                    acct_routing: "<li>Please enter a routing number.</li>",
                    acct_num: "<li>Please enter an account number.</li>",
                    c_acct_routing: "<li>Please confirm the routing number.</li>",
                    c_acct_num: "<li>Please confirm the account number.</li>"
            },

        //  errorContainer: '#div.error',

            errorPlacement: function(error, element) {
                $('#errorList').html("");
                $('#errorList').append(error);
                $('div.error').attr("style","display:block;");  
            } 
        });
$(“#pmtForm”)。验证({
规则:{
账户名称:“必填”,
账户类型:“必需”,
帐户路由:{
要求:正确,
数字:对,
精确长度:9
}, 
帐户编号:{
要求:正确,
数字:真
}, 
c_账户路由:{
等额:“#账户路由”
},     
c_账户编号:{
等额:“#账户路由”
}      
},
信息:{
账户名称:“
  • 请输入账户名称。
  • ”, 账户类型:“
  • 请选择账户类型。
  • ”, 账户路由:“
  • 请输入路由号码。
  • ”, 帐户数量:“
  • 请输入帐号。
  • ”, c\u账户路由:“
  • 请确认路由号码。
  • ”, c\u账号:
  • 请确认账号。
  • “ }, //errorContainer:“#div.error”, errorPlacement:函数(错误,元素){ $('#errorList').html(“”); $('#errorList')。追加(错误); $('div.error').attr(“样式”,“显示:块;”); } });
    我正在尝试将错误消息插入表单上方的div中。我的问题是如果删除这一行:$('#errorList').html(“”);然后第一次正确显示错误消息。如果我再次点击submit,它将向div追加另一组消息;然后我将只收到一条错误消息
  • 请输入帐号。
  • 如何刷新错误列表,使其不会重复并正确显示错误消息


    提前谢谢。

    我认为你想要的更合适,比如:

    $("#pmtForm").validate({
            rules: { ... },
            messages: { ... },
            errorContainer: '#errorList',
            errorLabelContainer: "#errorList ul",
            wrapper: 'li'
    });
    

    您现在可以从错误消息中删除
  • 包装,这将包装它们,然后将它们放置在
        中,并在没有错误时隐藏
        :)

        $('#errorList').html("");
        
        控制错误容器的状态。在这种情况下,您应该可以使用:

        errorContainer: '#div.error'
        
        errorPlacement更倾向于允许您将错误消息附加到非常特定的容器(即:TR中为错误消息保留的最后一个TD)

        如果您使用FireBug类似的工具,您将看到jQuery验证会将错误消息附加到错误容器中,并根据表单元素是否传递其规则来控制其可见性

        此外,您不需要将错误消息包装为HTML,您可以使用:

        wrapper: "li"
        

        我认为您只需要将它添加到您的验证方法中
        
        errorContainer:errorList
        errorLabelContainer:$(“ol”,容器),
        包装器:“li”,

        试试看……

        这个方法很有效:

          $("#addPmtAcctForm").validate({
                    rules: {
                            acct_name: "required",                        
                            acct_type: "required",  
                            acct_routing:  { 
                                             required: true,    
                                             digits: true,
                                             exactLength:9
                                             }, 
                            acct_num:      { 
                                             required: true,    
                                             digits: true
                                             }, 
                            c_acct_routing:{ 
                                             equalTo: '#acct_routing'
                                             },     
                            c_acct_num:    { 
                                             equalTo: '#acct_num'
                                             }      
                    },
                    messages: {
                            acct_name: "<li>Please enter an account name.</li>",
                            acct_type: "<li>Please choose an account type.</li>",
                            acct_routing: "<li>Please enter a routing number.</li>",
                            acct_num: "<li>Please enter an account number.</li>",
                            c_acct_routing: "<li>Please confirm the routing number.</li>",
                            c_acct_num: "<li>Please confirm the account number.</li>"
                    },
        
                    errorLabelContainer: $("ul", $('div.error')), wrapper: 'li',
        
                    errorContainer: $('div.error'),
        
                    errorPlacement: function(error, element) {
                        $('#errorList').append(error);
                    } 
                }); 
        
        $(“#addPmtAcctForm”)。验证({
        规则:{
        账户名称:“必填”,
        账户类型:“必需”,
        帐户路由:{
        要求:正确,
        数字:对,
        精确长度:9
        }, 
        帐户编号:{
        要求:正确,
        数字:真
        }, 
        c_账户路由:{
        等额:“#账户路由”
        },     
        c_账户编号:{
        等额:“#账户数量”
        }      
        },
        信息:{
        账户名称:“
      • 请输入账户名称。
      • ”, 账户类型:“
      • 请选择账户类型。
      • ”, 账户路由:“
      • 请输入路由号码。
      • ”, 账号:“
      • 请输入账号。
      • ”, c\u账户路由:“
      • 请确认路由号码。
      • ”, c\u账号:
      • 请确认账号。
      • “ }, errorLabelContainer:$($,$('div.error')),包装器:'li', errorContainer:$('div.error'), errorPlacement:函数(错误,元素){ $('#errorList')。追加(错误); } });
        快到了。这个链接非常有用。现在,我有:errorLabelContainer:$('ul',$('div.error')),包装器:'li',errorContainer:$('div.error'),errorPlacement:function(error,element){$('errorList')。append(error);}我的新问题甚至是c_acct_num=acct_num,最后一条错误消息不会消失。为什么在拥有错误容器后需要errorPlacement?哎呀,它应该是:c_acct_num:{equalTo:'#acct_num'}您的问题帮我找到了一个问题,谢谢:-)