首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JQuery:如何从下拉列表中选择一个不区分大小写的值?

JQuery:如何从下拉列表中选择一个不区分大小写的值?
EN

Stack Overflow用户
提问于 2009-08-06 14:13:15
回答 4查看 8.8K关注 0票数 14

我的场景:

  • 我有一个文本框,用户输入文本。
  • textbox有一个onblur函数,它尝试根据文本框输入从下拉列表(如果存在)中选择一个值。

如果textbox值与下拉列表值是相同的情况,这是非常好的。但我希望这件事对案件不敏感。

因此,如果用户输入“堆栈溢出”,那么我希望它从下拉列表"StackOverflow“中选择。我怎样才能通过jQuery做到这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-06 14:29:18

下面是另一种方法:在其实际情况中查找匹配值"StackOverflow“,并使用该方法调用val()

代码语言:javascript
运行
复制
  var matchingValue = $('#select option').filter(function () { 
      return this.value.toLowerCase() === 'stackoverflow'; 
  } ).attr('value');    
  $('#select').val(matchingValue);

当然,应该用变量替换文字'stackoverflow'

票数 19
EN

Stack Overflow用户

发布于 2009-08-06 14:18:45

我认为做这件事的最好方法是从之前而不是之后来看。如果您使它们都是小写的,那么它们都是标准化的,而且更容易使用。然后你所要做的就是让用户的输入都是小写的,而且很容易匹配。

另一个选项是使用过滤器函数,如一个在这里发现的

代码语言:javascript
运行
复制
$('something').filter(function() {
        return (new RegExp(value, "i")).test($(this).attr('attribute'));
    });

但是,值和属性需要替换。

票数 4
EN

Stack Overflow用户

发布于 2009-08-06 14:23:37

在模糊时,迭代你的选项,并检查它是否匹配。然后选择匹配的。

代码:

代码语言:javascript
运行
复制
$("#button").blur(function(){
  var val = $(this).val();
  $("#list option").each(function(){
     if($(this).text().toLowerCase() == val) $(this).attr("selected","selected");
  });
});

我还没有测试它,所以一定要检查语法错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1239151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档