【问题标题】:How to use jQuery Validate plugin for bootstrap-select? [duplicate]如何使用 jQuery Validate 插件进行引导选择? [复制]
【发布时间】:2017-06-02 08:36:27
【问题描述】:

我正在使用 jQuery Validate 插件 (jqueryvalidation.org) 并尝试验证下拉菜单。问题是我的下拉菜单使用bootstrap-select 插件,这意味着库将“正常”下拉菜单转换为div(用于样式、实时搜索等)更多关于boostrap-select - https://silviomoreto.github.io/bootstrap-select/examples/ 的信息。

我的问题是如何在 boostrap-select 下拉列表中使用 jQuery Validator 插件选项。

这是我的代码

echo $this->Form->input('customer_number', [
 'options' => $customer_number_list,
 'id' => 'customer_number',
 'class' => 'selectpicker',
 'empty' => __('All'),
 'label' => __('Customer number'),
 'value' => $this->request->data['customer_number'] ?? '',
 'onchange' => 'getDestinationList()'
]);

下面是 jQuery Validator 配置(规则和消息)

<script type="text/javascript" src="/js/jquery-validation/jquery.validate.js"></script>
<script>
  $(document).ready(function() {
    $('#change_destination').validate({
      rules: {
        customer_number: {
          required: true
        }
      },
      messages: {
        customer_number: {
          required: 'Please select a template'
        }
      },
      submitHandler: function(form) { // blocks submission for demo
        $('.selectpicker').selectpicker('refresh');
        return false;
      }
    });
  });
</script>

如果我在表单控件中更改我的下拉类,则此代码有效(但是我的下拉列表没有“漂亮”的外观以及我从引导选择选择器库中获得的其他功能。这是引导下拉库的示例(@987654323 @)

谢谢

【问题讨论】:

  • 您的实际下拉菜单可能存在于 DOM 中的某个位置,但可能被 CSS 隐藏了。找到那个隐藏的元素,找出选择器(devtools 将帮助解决这个问题)并尝试验证它。
  • 你说得对,真正的选择元素存在于正文中并且它是隐藏的,但是 jQuery Validator 插件不会生成“错误”消息,因为如果你从下拉列表中选择某些东西 - 选择的标签不会出现在真正的选择元素中,它只显示在 bootstrap-select 的那个 div 列表中...

标签: jquery twitter-bootstrap jquery-validate


【解决方案1】:

问题是选择选项被隐藏并且在 jQuery 验证器配置中写入 - 忽略隐藏元素,因此您必须更改 jQuery 验证库配置文件:

ignore: ":hidden"

进入

ignore: ""

您可以根据 jQuery 库版本从第 255 - 265 行找到此选项。有关相同问题的更多信息,您可以在 GitHub bootstrap-select 问题上找到 -> https://github.com/silviomoreto/bootstrap-select/issues/215

我希望这对你有用!

【讨论】:

  • 谢谢你,它现在可以工作了!
  • @Sparky 与 JohnWayne 的回答相同...
  • 我不知道那条评论是什么意思。我只是告诉你插件作者在使用这个选项时官方推荐的内容。
猜你喜欢
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多