使用jQuery检查下拉值包含特定文本

时间:2019-02-27 12:29:35

标签: jquery html

在一组下拉菜单中,如果所选值包含文本Misc,我将运行特定的代码。我正在使用下面的代码检查dropdown的值,但不起作用。

$(document).ready(function(){

        $("[id^='select_debit']").on('change', function() {


             if ( this.value ~= 'Misc')

                {

                    run code A

                } else {

                    run code B
                }
        });
});

有什么建议可以做到这一点?

编辑:

更具体地说,下拉列表没有称为Misc的特定值,但带有一些附加文本 例如:旅行杂项,网络杂项。

所以我正在寻找其中带有单词“ Misc”的所有选项

3 个答案:

答案 0 :(得分:1)

您可以使用

var n = (this.value).includes("Misc");

检查字符串是否包含在给定的字符串中

您可以从here中获取有关包含的更多详细信息。

$(document).ready(function() {

  $("[id^='select_debit']").on('change', function() {


    if (this.value.includes('Misc'))

    {

      console.log('A');

    } else {

      console.log('B')
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="select_debit">
  <option>Select option</option>
  <option value="Travel Misc">Travel Misc</option>
  <option value="Web Misc">Web Misc</option>
  <option value="Other">Other</option>

</select>

答案 1 :(得分:0)

$(document).ready(function()
{
   $("[id^='select_debit']").on('change', function() 
   {
      if ($(this).val() == 'Misc')
      {
         run code A
      } else {
         run code B
        }
   });
});

答案 2 :(得分:0)

  • 如果您按值表示->选择了选项文本,则可以使用$('option:selected' , this)
  • 如果您按值表示->所选选项的值,请使用this.value
  • 在两种情况下,您都需要使用indexOf()检查字符串是否在值中

$(document).ready(function(){
  $("[id^='select_debit']").on('change', function() {
    if ($('option:selected' , this).text().indexOf('Misc') > -1){
      console.log('Misc is Found');
    } else {
      console.log('Not Found');
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="select_debit_12">
  <option value="1">No</option>
  <option value="2">Here Misc</option>
</select>