如何在jquery multiselect asp下拉列表中设置选中的值

时间:2012-09-22 06:32:56

标签: jquery asp.net jquery-ui

我已经将这个脚本用于jquery multiselect,因为我根据数组中的值获取数组中的值,应该在jquery multiselect中检查它。

asp下拉列表ID: ddlDepartment

hdnDepartment 在此隐藏字段中,我将获得所有已检查的值

$(document).ready(function () {
            var revalue = new Array();
            if (document.getElementById("<%=hdnDepartment.ClientID %>").value != "") {
                var str = document.getElementById("<%=hdnDepartment.ClientID %>").value;
                var obj = $("#<%=ddlDepartment.ClientID %>");
                alert(obj);
                revalue = str.split(',');
                var i;
                for (i = 0; i < revalue.length; i++) {
                  //should reload that values in the checked in jquery multiselect 
                }

            }
        });

2 个答案:

答案 0 :(得分:0)

将hdnDepartment放在周围的div中

<div id="departmentCheck">
      <input type="hidden" value="true,true,false,false" id="hdnDepartment" />
</div>

并且jquery应该是

$(document).ready(function () {
   var revalue = new Array();

    if ($('#departmentCheck input').val() != "") {

        var str = $('#departmentCheck input').val();
        revalue = str.split(',');
         var counter=0;

         $('#idOfMultiselect option').each(function(k,v){

            try{

               //if catch if there is no index at counter in revalue then default to false
               $(v).attr('checked', revalue[counter]);


             }
             catch{
                $(v).attr('checked',false);

             }

            counter++;

           });


            }
        });

答案 1 :(得分:0)

如果我理解你的问题,你不需要用元素包围隐藏元素。你获得元素的方式几乎是正确的;你错过了选择器中的哈希值(即'#')。

假设您正在使用jQuery 1.6+,我相信以下代码将解决您的问题:

$(document).ready(function() {
    var values = $("#<%=hdnDepartment.ClientID %>").val();
    $.each(values.split(','), function(i, val) {
        $("#<%=ddlDepartment.ClientID %> option").eq(i).prop('checked') = (val === 'true');
    });
});​