首页 > 解决方案 > 如何查找是否在多个select2中选择了一个值?

问题描述

我有一个多个 select2 下拉列表,如下所示:

    <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如果用户在多选中选择了值或从下拉列表中选择了一个值,如何显示警报。

标签: javascriptjqueryasp.netjquery-select2

解决方案


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

第二个问题是您出于某种原因编写了“$('#<%=hfServices.ClientID%>').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" />

推荐阅读