0

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

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 
                }

            }
        });
4

2 回答 2

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++;

           });


            }
        });
于 2012-09-22T07:02:47.477 回答
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');
    });
});​
于 2012-09-23T11:18:27.633 回答