我没有专业人士,经过研究,我无法找到解决方案。 我有一个SharePoint列表的JavaScript源代码来实现有效的InstantListFilter(https://archive.codeplex.com/?p=instantlistfilter)!
但我想更新源代码,以便过滤器不区分大小写。我能够将过滤词(val)替换为大写(val = val.toUpperCase())。但我不知道如何将列表文本变为大写。
$("table.ms-listviewtable").children("tbody").each(function() {
$(this).children("tr").each(function() {
var mismatch = false;
$(this).children("td").each(function(colIndex) {
if (mismatch) return;
if (filterValues[colIndex]) {
var val = filterValues[colIndex];
// replace double quote character with 2 instances of itself
val = val.replace(/"/g, String.fromCharCode(34) + String.fromCharCode(34));
val = val.toUpperCase(); //my adaption, working for the filter word
$(this).val = $(this).val().toUpperCase(); //not working for the list-text
// verifies the filter word.
if ($(this).is(":not(:contains('" + val + "'))")) {
mismatch = true;
}
}
});
if (mismatch) {
$(this).hide();
} else {
$(this).show();
}
});
});
有人有解决方案吗? 对于简短的回复会很高兴!
答案 0 :(得分:0)
您正在尝试的解决方案也会将输入值修改为大写,我不确定您是否想要这样做?也许您可以将输入值分配给var,看看它是否包含String.indexOf()
的文本...
val = val.toUpperCase(); //my adaption, working for the filter word
var inputVal = $(this).val().toUpperCase();
// indexOf = -1 means that inputVal does not contain val
if (inputVal.indexOf(val) === -1) {
mismatch = true;
}
...
答案 1 :(得分:0)
感谢回复!!!
我明白了:
var inputVal = $(this).text().toUpperCase();
//alert(inputVal);
// verifies the filter word.
// indexOf = -1 means that inputVal does not contain val
if (inputVal.indexOf(val.toUpperCase()) === -1) {
mismatch = true;
}