美文网首页
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