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'}您的问题帮我找到了一个问题,谢谢:-)