如何将 jQuery 验证插件与 jQuery 选择器插件结合使用?

How to combine jQuery validation plugin with jQuery selecter plugin?

我正在处理一个旧项目,其中有很多 jQuery 和一些 jQuery 插件。其中一个插件是 jQuery Validation Plugin, it validates the input according to provided custom rules. Another one is jQuery Selecter plugin,它将普通的无聊 select 标签替换为样式精美的 div,模仿 select 标签的行为。

我现在遇到的问题是 jQuery 选择器插件隐藏了正常的 select 标签,而是用户与 .selecter div 进行交互然后以某种方式将 selected 值传递给 select 标记。另一方面,jQuery 验证插件仅在用户直接与此元素交互(单击它)时才尝试验证 select 元素。 jQuery 验证插件不会由 select 标签值的变化触发。这意味着当用户单击 .selecter 元素并且 jQuery 选择器插件更改 select 的值时,jQuery 验证插件不会尝试检查select 个元素,但仍认为此元素无效。

所以我的问题是,有没有人有过一起使用这两个插件并在 selecter 插件更改 select 元素的值时使验证插件工作的经验?

用户未与原始 select 元素交互,因为它是隐藏的,因此 none 的插件内置验证事件被触发。

看不到您的 JavaScript 或您的标记,所以这个答案是完全通用的。但是,您将编写一个 change 处理程序,它在 select 更改时触发,并以编程方式强制对其进行验证。

$('#yourSelect').on('change', function() {
    $(this).valid(); // force validation
});

$('#yourSelect') 是一个 jQuery 选择器,它以原始隐藏的 select 元素为目标。