我用ajax做2个ddl的联动,现在遇到一个问题,就是修改的时候,第2个ddl无法保持选中值,设置selectvalue不起作用。
function ChangeWH() {
$('#hdfWHID').val($('#ddlAddrs').val());
$('#hdfWHName').val($('#ddlAddrs').text())
}
function Change() {
var val = $('#ddlInOrg').val();
$.get("FlittingHandler.ashx?action=WH&DeptID=" + val, function(jsonstr) {
var json = eval(jsonstr);
$('#ddlAddrs').html('');
$.each(json, function(i) {
if (i == 0) {
$('#ddlAddrs').append("<option value='" + json[i].WHID + "' selected='true'>"
+ json[i].WHName + "</option>");
} else {
$('#ddlAddrs').append("<option value='" + json[i].WHID + "'>"
+ json[i].WHName + "</option>");
}
});
ChangeWH();
});
}
确实存在这个问题,而且存在后台无法取道服务端控件选中值的问题。用隐藏字段可以解决这种问题。〔在联动后触发一次第二个ddl的赋值函数〕
jquery ajax方法是异步执行的,你是不是异步没执行完就设置第二个ddl了?你可以在ajax方法的success或者complete里面设置。