【问题标题】:how to find if a value selected in multiple select2?如何查找是否在多个select2中选择了一个值?
【发布时间】:2020-10-11 14:39:38
【问题描述】:

我有一个多选 2 下拉菜单,如下所示:

    <select id="ddlServices" class="js-basic-multiple select2-hidden-accessible" multiple="" style="width: 100%" tabindex="-1" aria-hidden="true">
           <option vlaue='1'>one</option>
           <option vlaue='2'>two</option>
           <option vlaue='3'>three</option>
           <option vlaue='4'>four</option>
    </select>
<asp:HiddenField ID="hfServices" runat="server" />

我有一个隐藏字段来保存下拉更改事件中的 select2 选定值。
如果用户在下拉列表的单选或多选中选择选项 3,我想显示警报。我尝试如下所示。

<script>
    $('#ddlServices').on('change', function () {
        $('#<%=hfServices.ClientID%>').val($(this).val());
        var other = $('#<%=hfServices.ClientID%>').val($(this).val());
        if (other.search('3')) {
            alert('somthing');
        }           
    });
</script>

但我的代码总是显示警报。如果用户在多选或下拉列表中的一个选定值中选择了值3,如何显示警报。

【问题讨论】:

  • 这会设置 val $('#&lt;%=hfServices.ClientID%&gt;').val($(this).val()); 并且不返回值,而是返回一个 jQuery 对象。就说if ($(this).val() === 3) ...
  • 并且 vlaue 拼写不正确

标签: javascript jquery asp.net jquery-select2


【解决方案1】:

你这里有几个问题,第一个是你在html代码上写了“vlaue”而不是“value”。

第二个问题是你出于某种原因写了“$('#').val”。

你可以把你的js改成这个代码:

$('#ddlServices').on('change', function () {
    if ($(this).val()[0] == '3') {
        alert("somthing");
  }           
});

和 html 到这个:

<select id="ddlServices" class="js-basic-multiple select2-hidden-accessible" multiple="" style="width: 100%" tabindex="-1" aria-hidden="true">
       <option value='1'>one</option>
       <option value='2'>two</option>
       <option value='3'>three</option>
       <option value='4'>four</option>
</select>
<asp:HiddenField ID="hfServices" runat="server" />

【讨论】:

  • 谢谢,但我使用的是多选 select2,所以如果从列表中只选择了一项,您的代码就会返回。
猜你喜欢
  • 1970-01-01
  • 2019-05-25
  • 2017-06-11
  • 2020-02-25
  • 2014-12-05
  • 2022-01-02
  • 2023-03-08
  • 2019-01-01
  • 2016-04-01
相关资源
最近更新 更多