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