我正在使用jQuery验证,我想在div <div class="alert alert-error" id="errorContainer">
中显示错误消息显示在表单下方的默认设置不适用于我的表单设计。
验证脚本链接到我有表单的页面,它看起来像:
$(function validate() {
var rules = {
rules: {
full_name: {
minlength: 2,
maxlength: 50,
required: true
},
address: {
minlength: 5,
required: true
},
city: {
minlength: 2,
required: true
},
state: {
minlength: 2,
maxlength: 2,
required: true
},
zip: {
minlength:5,
maxlength:5,
required: true
},
phone: {
required: true,
phoneUS: true
},
phone_other: {
required: true,
phoneUS: true
},
email: {
required: true,
email: true
},
date_to_start: {
required: true
},
ssn: {
required: true,
ssn: true,
},
salary: {
required: true
}
}
};
var validationObj = $.extend (rules, Application.validationRules);
$('#employment-application').validate(validationObj);
});
现在我尝试将$('#employment-application').validate(validationObj);
更改为下面的代码,并尝试将其添加到我打开表单的页面底部,两者都给出了否定结果。该脚本似乎将style="display:none;"
添加到errorContainer
,并且不会在任何地方加载任何错误。
(尝试将$('#employment-application').validate(validationObj);
更改为以下内容)
$("#employment-application").validate({
errorContainer: "#errorContainer",
errorLabelContainer: "#errorContainer",
errorElement: "li"
})
所以重新上限,我想使用jQuery表单验证并显示在单独的div中收到的错误消息,因为默认设置不适用于我的表单设计。
答案 0 :(得分:16)
您可以使用errorPlacement
选项传递这样的回调:http://jsfiddle.net/cMhQ7/
我使用div
id的标准作为输入元素的名称与_validate
后缀连接,但您可以根据需要进行更改。
HTML
<form id="employment-application" method="post">
<input name="full_name" type="text" />
<div id="full_name_validate"></div>
<input type="submit" />
</form>
的Javascript
$(function validate() {
var rules = {
rules: {
full_name: {
minlength: 2,
maxlength: 50,
required: true
},
},
errorPlacement: function (error, element) {
var name = $(element).attr("name");
error.appendTo($("#" + name + "_validate"));
},
};
$('#employment-application').validate(rules);
});
答案 1 :(得分:4)
如果只想将默认位置更改为某些元素,则可以使用此改进。 这实现了验证脚本
的默认行为 errorPlacement: function(error, element){
var name = $(element).attr("name");
var $obj = $("#" + name + "_validate");
if($obj.length){
error.appendTo($obj);
}
else {
error.insertAfter(element);
}
},