JQuery:如何从dropdownlist中选择不区分大小写的值?
我的设想:JQuery:如何从dropdownlist中选择不区分大小写的值?,jquery,drop-down-menu,case-insensitive,Jquery,Drop Down Menu,Case Insensitive,我的设想: 我有一个用户输入文本的文本框 文本框有一个onblur函数,它尝试根据文本框输入从下拉列表(如果存在)中选择一个值 如果textbox值与dropdownlist值的大小写相同,则此操作非常有效。但我希望它不区分大小写 因此,如果用户键入“stackoverflow”,那么我希望它从dropdownlist“stackoverflow”中进行选择。如何通过jQuery实现这一点?我认为最好的方法是从前面看,而不是从后面看。如果您将它们全部小写,那么它们都是标准化的,并且更易于使用
- 我有一个用户输入文本的文本框
- 文本框有一个onblur函数,它尝试根据文本框输入从下拉列表(如果存在)中选择一个值
因此,如果用户键入“stackoverflow”,那么我希望它从dropdownlist“stackoverflow”中进行选择。如何通过jQuery实现这一点?我认为最好的方法是从前面看,而不是从后面看。如果您将它们全部小写,那么它们都是标准化的,并且更易于使用。然后你所要做的就是让用户的输入都是小写的,这样就很容易匹配了 另一种选择是使用过滤函数,如:
值和属性需要被替换。在模糊上,迭代您的选项并检查是否匹配。然后选择一个匹配的 代码:
$("#button").blur(function(){
var val = $(this).val();
$("#list option").each(function(){
if($(this).text().toLowerCase() == val) $(this).attr("selected","selected");
});
});
我还没有测试它,所以一定要检查语法错误。这里有另一种方法:在实际情况中找到匹配的值“StackOverflow”,并用它调用
val()
var matchingValue = $('#select option').filter(function () {
return this.value.toLowerCase() === 'stackoverflow';
} ).attr('value');
$('#select').val(matchingValue);
当然,应该用一个变量替换文本'stackoverflow'
。正则表达式(RegExp)函数可能是一种方法
var txt = new RegExp(pattern,attributes);
模式:文本模式属性:“i”表示不区分大小写 你可以结合过滤功能。这样的办法应该行得通
$("#textbox").blur( function () {
var text = $(this).val();
var dropdownlist =
$("select").filter( function () {
return (new RegExp(text, "i")).test($(this).attr("id"));
});
// do something to dropdownlist
});
$("#textbox").blur( function () {
var text = $(this).val();
var dropdownlist =
$("select").filter( function () {
return (new RegExp(text, "i")).test($(this).attr("id"));
});
// do something to dropdownlist
});