我已经将这个脚本用于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
}
}
});
答案 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');
});
});