这就是我使用dwr调用将值设置为组合框的方法,
var reportID = '<%=reportid%>';
var reportName = '<%=reportname%>';
loadReportNames(reportUserID);
function loadReportNames(reportUserID){
CustomiseReportAction.getReportNames(reportUserID, addReportNamesDropDown);
}
function addReportNamesDropDown(resultMap){
dwr.util.removeAllOptions("reportnames");
dwr.util.addOptions("reportnames",resultMap);
}
加载组合框后,我将值设置为加载的组合,如下所示,
document.getElementById("reportnames").value=reportID;
但未设置reportID
可能是什么问题请帮我解决这个问题。
UPDATE :
function addCombo() {
var reportID = '<%=reportid%>';
var reportName = '<%=reportname%>';
var textb = document.getElementById("reportnames");
var option = document.createElement("option");
option.text = reportName;
option.value = reportID;
option.selected="selected";
try {
textb.add(option, null); //Standard
}catch(error) {
textb.add(option); // IE only
}
textb.value = "";
}
使用上面的方法它没有例外,但没有结果。
此致
答案 0 :(得分:4)
编辑:我只是仔细检查过它应该像你做的那样工作,所以忽略我原来的帖子。您确定reportID的内容与其中一个选项完全匹配吗?如果是数字而不是字符串,您可能想尝试
document.getElementById("reportnames").value = "" + reportID;
的原始强>:
要设置组合框的选定选项(假设您的意思是html“select”),您需要将所需选项的“selected”属性设置为true。
var select = document.getElementById("reportnames");
for (var i = 0; i < select.options.length; i++)
{
if (...)
select.options[i].selected = true;
}
您需要一些方法来识别该选项,我会通过在其中保存reportID来实现。然后你可以用......替换......
select.options[i].ReportId == reportID
如果您将reportID设置为每个选项的“id” - 属性,您甚至可以这样做:
document.getElementById(reportID).selected = true;
答案 1 :(得分:4)
我没有删除该值,而是添加了以下代码,它解决了我的问题。
function addCombo() {
var reportID = '<%=reportid%>';
var options= document.getElementById('reportnames').options;
for (var i= 0, n= options.length; i < n ; i++) {
if (options[i].value==reportID) {
document.getElementById("reportnames").selectedIndex = i;
break;
}
}
}