select2的通过value值的搜索查询

<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>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,059评论 0 2
  • 找到fullcalendar.js, 找到代码为 isRTL:false,这句话 输入以下几句 monthName...
    迷你小小白阅读 1,735评论 0 1
  • 右眼睛跳了快一个月了,难道我要瞎了吗?同事说是休息不好导致的。 那根不正常的神经错乱的跳动,有些心烦。 好像去一个...
    棒棒唐阅读 183评论 0 0
  • “我知道,你有你的远大前程,你有你的伟大理想,我尊重你,尊重你的每一个选择。我爱你,可我没必要去放弃我自己,这不是...
    cement_阅读 146评论 0 0
  • 那一剑,终究还是刺了下去——天突穴,只有他知道,那是子兮的死穴。 卿子兮注定要死在夕颜上神剑下,没有人知道。但...
    黎落尘阅读 566评论 3 3