jQuery Selectric(select 替换)验证

jQuery Selectric (select replacement) validation

我在我的网页设计中使用了 Selectric (http://lcdsantos.github.io/jQuery-Selectric/)。

我想强制用户从 select 中选择选项(与默认选项不同)并通过 jQuery 验证插件 (http://jqueryvalidation.org/) 验证此事件。

问题是 Selectric 将 select 选项构建为 <li> 元素(隐藏 HTML select),所以我无法验证它。

有什么想法吗?

Problem is that Selectric builds select options as <li> elements (hides HTML select) so I can't validate it.

是的,确实如此;您可以验证<textarea><select>和某些类型的<input>元素。

但是,有一个解决方法,因为原来的 select 元素被简单地隐藏了...

  1. 您需要了解 name 或检查您的 DOM 以获得隐藏的 <select> 元素的 name 属性。我们称它为 mySelect.

  2. 允许插件通过将 ignore 选项设置为 "nothing" 来验证隐藏元素,如下所示:ignore: []

  3. 假设您正在尝试制作 Selectric 元素 "required",请在隐藏的 <select> 元素上声明 required 规则。

  4. 由于用户没有与隐藏的 <select> 进行交互,所以插件没有触发验证的事件触发器。编写一个自定义处理程序,它将在隐藏元素的值发生变化时以编程方式触发对隐藏元素的验证。

    $('select[name="mySelect"]').on('change', function() { // fires when the value changes
        $(this).valid(); // trigger validation on hidden select
    });
    
  5. 使用插件的 the errorPlacement option 将错误消息放置在动态生成的 Selectric 元件附近。