如何在jquery中触发select的更改时忽略大小写(上/下)?

时间:2016-08-24 06:57:40

标签: javascript jquery

请参阅以下代码:

<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<select>
<option>one</option>
<option>two</option>
<option>three</option>
<option>four</option>
<option>five</option>
</select>
<script>
$("select").val("TWO").trigger("change");
</script>
</body>
</html>

在这种情况下,选项未设置值&#34; TWO&#34; 。但如果我换成:

$("select").val("two").trigger("change");

然后它有效。如何在触发select的更改时忽略大小写?

4 个答案:

答案 0 :(得分:0)

试试这个 - 这将忽略案例

&#13;
&#13;
  var optionVal = $('select option').filter(function() {
    return this.value.toLowerCase() == 'two';
  }).val();

  $("select").val(optionVal).trigger("change");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select>
  <option>one</option>
  <option>Two</option>
  <option>three</option>
  <option>four</option>
  <option>five</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

$("select").val("TWO".toLowerCase()).trigger("change");

将所有值设为小写,现在您可以检查字符串

中的大写或小写无关紧要

答案 2 :(得分:0)

您需要按文本选择选项,然后将其设置为选中:

 $('select option').filter(function () { 
   return $(this).text().toLowerCase() == 'two'; 
 }).prop('selected', true);    

&#13;
&#13;
$('select option').filter(function () { 
   return $(this).text().toLowerCase() == 'two'; 
 }).prop('selected', true);   
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option>one</option>
<option>two</option>
<option>three</option>
<option>four</option>
<option>five</option>
</select>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

使用正则表达式

$("select option").each(function(){
 if(this.value.match(/TWO/i)){
     $(this).attr("selected","selected")
 }
});
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<select>
<option>one</option>
<option>two</option>
<option>three</option>
<option>four</option>
<option>five</option>
</select>