0

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 
                }

            }
        });
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 に答える