将 jquery 验证附加到替换元素
attaching jquery validation to replacement element
我有一个带有下拉列表的 aspnet mvc 表单,我正在用 jquery 组合框替换它。
原始下拉列表有针对它的客户端验证集 - 使用不显眼的库和标准 jquery 验证 - ,我希望将此验证附加到组合框。
作为组合框生成的一部分,名称从投放器中删除,而是设置在隐藏字段上。
我面临的问题是当组合框(隐藏字段)无效时(在本例中为空),验证消息不会显示。
是否有任何方法可以连接隐藏字段以像下拉列表那样进行验证?
我尝试了几件事:
- 连同将隐藏字段的名称设置为下拉列表名称 - 复制 data-val 和 data-val-required 属性,但我没有运气。我意识到,由于隐藏字段是动态添加的,验证器不会将其拾取,但认为验证是按名称 (afaik) 选择的,它可能会起作用。我试图重新解析表单,以便它拾取隐藏字段,但由于原始规则仍然存在 - 这似乎不起作用。
- 我也尝试过不使用隐藏字段并将验证留在原始滴管上——当设置组合框中的项目时,也会设置滴管中的值。这也不起作用 - 我想是因为下拉菜单是隐藏的,因为如果我让它显示验证工作正常。
我正在使用 bootstrap jquery combobox,我对其稍作修改以使用选项组
有人可以提供帮助吗?
谢谢
您使用的插件隐藏了输入并将其替换为自己的 html。默认情况下,jQuery 验证不验证隐藏的表单控件,但您可以通过修改验证器来覆盖此行为
$.validator.setDefaults({
ignore: []
});
请注意,如果您有其他不想验证的隐藏元素,则可以为该元素指定一个 class 名称
$.validator.setDefaults({
ignore: ":hidden:not('.combobox')"
});
注意:确保此脚本在$(document.ready)
函数之外。
我有一个带有下拉列表的 aspnet mvc 表单,我正在用 jquery 组合框替换它。
原始下拉列表有针对它的客户端验证集 - 使用不显眼的库和标准 jquery 验证 - ,我希望将此验证附加到组合框。
作为组合框生成的一部分,名称从投放器中删除,而是设置在隐藏字段上。 我面临的问题是当组合框(隐藏字段)无效时(在本例中为空),验证消息不会显示。
是否有任何方法可以连接隐藏字段以像下拉列表那样进行验证? 我尝试了几件事:
- 连同将隐藏字段的名称设置为下拉列表名称 - 复制 data-val 和 data-val-required 属性,但我没有运气。我意识到,由于隐藏字段是动态添加的,验证器不会将其拾取,但认为验证是按名称 (afaik) 选择的,它可能会起作用。我试图重新解析表单,以便它拾取隐藏字段,但由于原始规则仍然存在 - 这似乎不起作用。
- 我也尝试过不使用隐藏字段并将验证留在原始滴管上——当设置组合框中的项目时,也会设置滴管中的值。这也不起作用 - 我想是因为下拉菜单是隐藏的,因为如果我让它显示验证工作正常。
我正在使用 bootstrap jquery combobox,我对其稍作修改以使用选项组
有人可以提供帮助吗?
谢谢
您使用的插件隐藏了输入并将其替换为自己的 html。默认情况下,jQuery 验证不验证隐藏的表单控件,但您可以通过修改验证器来覆盖此行为
$.validator.setDefaults({
ignore: []
});
请注意,如果您有其他不想验证的隐藏元素,则可以为该元素指定一个 class 名称
$.validator.setDefaults({
ignore: ":hidden:not('.combobox')"
});
注意:确保此脚本在$(document.ready)
函数之外。