<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>
网友评论