我在显示的字段上遇到问题:无... 我需要在单击提交表单按钮后,即使要验证的字段在div中,也显示错误消息,显示:无设置。 我找到解决方案并尝试添加到jQuery代码设置
ignore: []
但这不会改变任何事情。使用名为'moreurlinput'的类查看div,他获得了内联样式显示:none,但如果将其更改为显示:inline(block,table等),则会出现验证错误。
HTML
<form id="post" action="http://m.onet.pl" method="post" class="validatedForm">
<div class="moreurlinput" style="display:none">
<input class="moreurl center" type="text" name="moreurl" id="moreurl" />
</div>
<div>
<button type="submit" />Add</button>
</div>
</form>
jquery的
jQuery('.validatedForm').validate({
errorElement: "div",
errorClass: 'validate-error',
rules: {
"moreurl": {
required: true
}
},
messages: {
moreurl: "Please define 'More' URL value"
}
});
答案 0 :(得分:4)
验证工作完全符合预期。您的整个问题是,隐藏的div
中的错误元素也是 内部,因此无法看到该消息。
解决方案是使用errorPlacement
选项将隐藏div
的消息放在之外。
errorPlacement: function(error, element) {
error.insertAfter($(element).parent());
},
您还需要ignore: []
选项,以便不会忽略任何内容并验证您的隐藏元素。
工作演示:http://jsfiddle.net/Lprn89o8/4/
替代方案只需将display:none
移至input
元素,即可让div
保持可见。
替代方案:http://jsfiddle.net/Lprn89o8/5/
修改强>:
button
元素的HTML无效。你不应该使用&#34;自我关闭&#34;标记,因为<button>
元素本身是一个具有结束标记的容器。
<button type="submit" />Add</button>
应该是......
<button type="submit">Add</button>