首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查Jquery多选择下拉列表中的选项?

如何检查Jquery多选择下拉列表中的选项?
EN

Stack Overflow用户
提问于 2015-12-02 19:31:31
回答 2查看 5.8K关注 0票数 0

即使能够在多选择列表中找到该选项,我也无法从jquery多选择下拉列表中检查该选项。请告诉我我错过了什么。谢谢!!

代码语言:javascript
复制
//this is my multi-select dropdown<br/>
$("#ddlCountries").multiselect();

var country = "USA";

//I tried below, but it did not work    
//$("#ddlCountries").multiselect("widget").find(":checkbox[value='" + country + "']").attr("checked", true);

回复@ Bhavin:我照你说的做了,仍然没有得到预期的结果。请看下面的内容。

代码语言:javascript
复制
$(document).ready(function () {
    $("#ddlCountries").multiselect();
    $("#ddlCountries").multiselect('uncheckAll');
}


function ddlRole_OnChange(){
    //client object of ddlRoles combobox
    var roles = $(this).data('tComboBox');
    //selected item from ddlRoles
    var selectedRole = roles.text();

    if (selectedRole.toLowerCase() === "admin"){
        //custom yes/no dialog box (first param is Title, second param is Question, third param is callback function)
        YesNoJqueryDailogBox('Admin Configuration:', 'Need Admin Role ?', 'selectForAdminRole');       
    }  
}

function selectForAdminRole(){

    $(document).ready(function (){
        $("#ddlCountries").multiselect();
        $("#ddlCountries").multiselect('uncheckAll');
        var country = "USA";
        $("#ddlCountries").multiselect("widget").find(":checkbox[value='" + country + "']").prop('checked', true);
    }); 
}

Response @视图(.cshtml)

代码语言:javascript
复制
<tr>
    <td align="left" valign="middle" width="30%">
        @if (ViewBag.Roles != null)
        {
         @(
            Html.Telerik().ComboBox().Name("ddlRole") @*server-side combobox name*@
           .BindTo((IEnumerable<SelectListItem>)ViewBag.Roles) @*server-side ddlRole binding in page load*@
           .ClientEvents(events => events.OnChange("ddlRole_OnChange")) @*server-side ddlRole change event*@
          )
        }
    </td>
 </tr>

 <tr>
     <td align="left" valign="middle" width="15%" height="40" >
        Countries <span class="mandatory">*</span>
     </td>
     <td align="left" valign="middle" width="20%" >
        @if (ViewBag.Countries != null)
        {
           @*server-side ddlCountries dropdown binding in page load*@
           @Html.DropDownList("ddlCountries", (IEnumerable<SelectListItem>)ViewBag.Countries)
        }
     </td>
 </tr>

解决方法:检查选项后刷新ddlCountries下拉列表,解决了问题。

代码语言:javascript
复制
var countries= $("#ddlCountries").multiselect('uncheckAll');
countries.children('option').each(function (){

    var countryNameText = $(this).text();      
    if (countryNameText == "admin"){
            $(this).attr('selected', 'selected');            
    }
});
$("#ddlCountries").multiselect("refresh"); 

谢谢大家!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-03 15:25:38

必须刷新multiSelect,以及为什么要在selectForAdminRole函数中添加$(document).ready

代码语言:javascript
复制
       $("#ddlCountries").find("option[value=" + ce + "]").prop("selected", true)
        $("#ddlCountries").multiselect("refresh")

你可以用这个

代码语言:javascript
复制
     $("#ddlCountries").val("USA");
      $("#ddlCountries").multiselect("refresh")                      
票数 4
EN

Stack Overflow用户

发布于 2015-12-02 19:43:24

如果我放置两次onload事件或setTimeout工作。我用第一个选项作为解决办法,它很难看,但效果很好。

代码语言:javascript
复制
$(document).ready(function() {
   $(document).ready(function() {
      $('#id').multiselect();
   });
});

$(document).ready(function() {
  setTimeout(function() {
      $('#id').multiselect();
   }, 500);
});

jQuery: 1.8.3

自举: 3.0.3

多重选择: 0.9.13

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

https://stackoverflow.com/questions/34051372

复制
相关文章

相似问题

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