将jqueryvalidation附加到替换元素
我有一个带有下拉列表的aspnet mvc表单,我用一个jquerycombobox代替。
原始的dropdownlist有一个客户端validation设置 – 使用不显眼的lib和标准的jqueryvalidation – ,我希望这个validation附加到combobox。
作为combobox生成的一部分,名称将从滴管中移除,而是设置在隐藏字段上。 我面临的问题是,当combobox无效时(在这种情况下为空),validation消息不会显示在combobox(隐藏字段)中。
有没有办法连接隐藏字段来validation下拉列表会有什么? 我尝试了几件事:
- 同时将隐藏字段的名称设置为下拉列表名称 – 复制data-val和data-val-required属性,但我没有运气。 我意识到,由于隐藏字段是动态添加的,validation器不会选择它,但是当validation通过名称(afaik)选择时它可能正常工作。 我试图重新解析表单,以便它拾取隐藏的字段,但原始规则仍然存在 – 这似乎不起作用。
- 我也尝试过不使用隐藏字段并将validation留在原始滴管上 – 当combobox中的项目设置时,也会在滴管中设置值。 这也不起作用 – 我认为因为下拉是隐藏的,因为如果我离开它显示validation工作正常。
我正在使用bootstrap jquerycombobox ,我稍微修改了它以使用选项组
有人可以提供一些帮助吗?
谢谢
您正在使用的插件隐藏输入并将其替换为自己的html。 默认情况下,jQueryvalidation不会validation隐藏的表单控件,但您可以通过修改validation程序来覆盖此行为
$.validator.setDefaults({ ignore: [] });
请注意,如果您有其他不需要validation的隐藏元素,则可以为元素指定类名
$.validator.setDefaults({ ignore: ":hidden:not('.combobox')" });
注意:确保此脚本位于$(document.ready)
函数之外。