我正在开发一个旧项目,包含大量jQuery和一些jQuery插件。其中一个插件是jQuery Validation Plugin,它根据提供的自定义规则验证输入。另一个是jQuery Selecter plugin,用一个模仿select标签行为的漂亮风格的div替换了普通的无聊select
标签。
我现在遇到的问题是jQuery Selecter插件隐藏了普通select
标记,而是用户与.selecter
div交互,然后将所选值传递给{{1以某种方式标记。另一方面,jQuery Validation Plugin仅在用户直接与此元素交互(点击它)时才尝试验证select
元素。更改select
标记的值不会触发jQuery Validation Plugin。这意味着当用户点击select
元素并且jQuery Selecter插件更改.selecter
的值时,jQuery Validation Plugin不会尝试检查select
元素的值并仍然认为这个元素无效。
所以我的问题是,有没有人有任何使用这两个插件的经验,并且当selecter插件更改select
元素的值时使验证插件工作?
答案 0 :(得分:1)
用户没有与原始select
元素交互,因为它是隐藏的,因此没有触发插件的内置验证事件。
无法看到您的JavaScript或标记,因此这个答案完全是通用的。但是,您可以编写一个change
处理程序,在select
发生更改时触发,并以编程方式强制对其进行验证。
$('#yourSelect').on('change', function() {
$(this).valid(); // force validation
});
$('#yourSelect')
是一个jQuery选择器,它定位原始隐藏的select
元素。