zoukankan      html  css  js  c++  java
  • juery 实现下拉框多选 jquery-multiselect

    效果:

    除了jquery,需要引用的样式和js文件:

    <link rel="stylesheet" type="text/css" href="../assets/jquery.multiselect.css" />
    <link rel="stylesheet" type="text/css" href="../assets/style.css" />
    <link rel="stylesheet" type="text/css" href="../assets/prettify.css" />
    <link href="../assets/jquery-ui.css" rel="stylesheet" />
    <script src="../assets/jquery.js"></script>
    <script src="../assets/jquery-ui.min.js"></script>
    <script type="text/javascript" src="../assets/prettify.js"></script>
    <script type="text/javascript" src="../assets/jquery.multiselect.js" charset=gb2312></script>

    HTML代码:

     <select title="Basic example" multiple="multiple" name="example-basic" size="5" id="ddlConditions">
            <option value="1">Option 1</option>
            <option value="2">Option 2</option>
            <option value="3">Option 3</option>
            <option value="4">Option 4</option>
            <option value="5">Option 5</option>
            <option value="6">Option 6</option>
            <option value="7">Option 7</option>
        </select>

    默认选中值1,2,3,绑定指定的选项:

      var  strcondition = '1,2,3';       
            var ids = strcondition.split(',');        
            if (ids != null) {            
                $('#ddlConditions').val(ids);
                $('#ddlConditions').multiselect("refresh");           
            }

    获取选中的多个值:

    首先修改jquery.multiselect.js,添加全局变量multiValues ,用来存放选项值,然后修改update方法,添加multiValues 那一行代码:

    update: function() {
          var o = this.options;
          var $inputs = this.inputs;
          var $checked = $inputs.filter(':checked');
          var numChecked = $checked.length;
          var value;
    
          if(numChecked === 0) {
            value = o.noneSelectedText;
          } else {
            if($.isFunction(o.selectedText)) {
              value = o.selectedText.call(this, numChecked, $inputs.length, $checked.get());
            } else if(/d/.test(o.selectedList) && o.selectedList > 0 && numChecked <= o.selectedList) {
              value = $checked.map(function() { return $(this).next().html(); }).get().join(', ');
            } else {
              value = o.selectedText.replace('#', numChecked).replace('#', $inputs.length);
            }
            multiValues = $checked.map(function () { return $(this).val(); }).get().join(',');
          }
    
          this._setButtonValue(value);
    
          return value;
        },

    再添加自定义方法:

     MyValues:function(){
            return multiValues;
        },

    页面使用此自定义方法,获取选中值的代码:

     if ($('input[name=multiselect_ddlConditions]:checked').length < 1)
                alert('Please Select Option');
            else {
                var strConditions = $("#ddlConditions").multiselect("MyValues");
    }
  • 相关阅读:
    tomcat启动Publishing failed with multiple errors
    oracle中merge into用法解析
    ORACLE数据库导出表,字段名,长度,类型,字段注释,表注释语句
    orcale的to_number方法
    Git删除无效远程分支
    .net core文件系统简介
    PowerShell的一些资料整理
    Jetbrains推出了一款新的编程字体Mono
    .net core程序强制以管理员权限启动
    在Asp.net Razor Pages/MVC程序中集成Blazor
  • 原文地址:https://www.cnblogs.com/hiflora/p/4122711.html
Copyright © 2011-2022 走看看