JS:
$j.ajax({
url : '<%=request.getContextPath()%>/webCount/getTownShip?countycode='+county_code,
data : jQuery('#form1'),
type : "post",
cache : false,
success : function(data) {
var result = eval('(' + data + ')');
var townShip = document.form1.townShip;
for(i=0;i<result.length;i++)
{
var tcode = result[i].tcode;
var tname = result[i].tname;
document.form1.townShip.options[document.form1.townShip.options.length]=new Option(tname,tcode);
}
}
});
}
JSP:
<td nowrap="nowrap" align="left" bgcolor="#f0f0f0" >县 级:
<select name="county" id="county" style="width:200px" multiple="multiple" onchange="getTownShip()">
<c:forEach items="${countyMap}" var="item">
<option value="${item.key}">${item.value}</option>
</c:forEach>
</select>
</td>
<td nowrap="nowrap" align="left" bgcolor="#f0f0f0" >乡 级:
<select name="townShip" id="townShip" style="width:200px" multiple="multiple"></select>
</td>
多选下拉框是通过jquery实现的,从后台直接返回Map可以读取(如countyMap),要做的功能是根据县级所选值联动得到乡级的值,JS只展现了部分,现在取值都没有问题,但是在给多选下拉框townShip赋值时赋值不上去,document.form1.townShip.options[document.form1.townShip.options.length]=new Option(tname,tcode);这句话给普通下拉框是可以赋值的,已经试过,求高手帮忙,急求
------解决思路----------------------
可以在第一个选单选好值之后把由后台取得的数据重新做成第二个选单
请注意第二个选单是全部重新产生
一般来说在第一个选单还没选好之前第二个选单可以不用出现
第二个选单可以使用html或是append
var data = {
'foo': 'bar',
'foo2': 'baz'
}
var s = $('<select />');
for(var val in data) {
$('<option />', {value: val, text: data[val]}).appendTo(s);
}
s.appendTo('body');
删除
$('#CountyDDL').remove();
------解决思路----------------------
6楼正解,不过var s = $('<select />');这里面的<select />应该是要换成下拉框ID。
------解决思路----------------------
5楼正解。。