在DIV中使用display:none的字段进行jqueryvalidation

我在显示的字段上遇到问题:无…我需要在点击提交表单按钮后出现错误消息,即使要validation的字段在div中,显示:无设置。 我找到解决方案,并尝试添加到jQuery代码设置

ignore: [] 

但这不会改变任何事情。 使用名为’moreurlinput’的类查看div,他获得了内联样式显示:none,但是如果将其更改为显示:inline(块,表等),则会出现validation错误。

HTML

 

jQuery的

 jQuery('.validatedForm').validate({ errorElement: "div", errorClass: 'validate-error', rules: { "moreurl": { required: true } }, messages: { moreurl: "Please define 'More' URL value" } 

});

这里 : http : //jsfiddle.net/Lprn89o8/2/

validation与预期完全一致。 你的整个问题是错误元素也在你隐藏的div所以无法看到消息。

解决方案是使用errorPlacement选项将消息放在隐藏的div

 errorPlacement: function(error, element) { error.insertAfter($(element).parent()); }, 

您还需要ignore: []选项,以便不会忽略任何内容并validation您的隐藏元素。

工作演示: http : //jsfiddle.net/Lprn89o8/4/


另一种解决方案是将display:none移动到input元素,允许div保持可见。

替代方案: http : //jsfiddle.net/Lprn89o8/5/


编辑

您的button元素的HTML无效。 您不应该使用“自闭”标记,因为元素本身是一个具有结束标记的容器

 Add 

应该…