美文网首页
select2的通过value值的搜索查询

select2的通过value值的搜索查询

作者: Bookcyj | 来源:发表于2018-07-31 09:56 被阅读0次

    <script> 

    $('#uid').select2({

            // 设置属性matcher

            matcher: matchCustom

        });

        //matchCustom 是自定义的过滤函数,对每个option进行遍历,如果return null.那么对应的option就不会显示,如果return data ,对应option就会显示

        // params.term 是 在搜索过滤框中输入的文字

        function matchCustom(params, data) {

            if ($.trim(params.term) === " '') {

              return data;

            }

            if (typeof data.text === 'undefined') {

              return null;

            }

            if (typeof data.id === 'undefined') {

              return null;

            }

            if (data.text.indexOf(params.term) > -1) {

              var modifiedData = $.extend({}, data, true);

              return modifiedData;

            }

            if (data.id.indexOf(params.term) > -1) {

              var modifiedData = $.extend({}, data, true);

              return modifiedData;

            }

            //判断是否有符合匹配条件的value_name

            //data.element.index 是对应option的index值

            if (getvalue(params.term).hasOwnProperty(data.element.index)) {

                return data;

            }

            return null;

        }

        //获取所有符合匹配的value_name 的index 对象

        var matchString=null;

        var indexObj = null;

        //matchStr 需要模糊匹配的值

        // indexObj 是有 所有符合模糊匹配的option index 的对象

        function getvalue(matchStr) {

            if (matchStr===matchString && matchString!=null) {

                return indexObj;

            }

            matchString = matchStr;

            indexObj = {};

            $('#registered_game option').each(function () {

                var match = '^\\S*' + matchStr + '\\S*$';

                var reg = new RegExp(match, 'i');

                var str = $(this).attr('name_value');

                if (reg.test(str)) {

                    var i = $(this).index();

                    indexObj[i] = $(this).val();

                }

            });

            return indexObj;

        }

    </script>

    相关文章

      网友评论

          本文标题:select2的通过value值的搜索查询

          本文链接:https://www.haomeiwen.com/subject/jbscvftx.html