2

これは、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 = "";
}

上記の方法を使用すると、例外はありませんが、結果は得られません。

よろしく

4

2 に答える 2

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;
        }
    }
}
于 2012-09-21T11:46:11.233 に答える
4

編集: 再確認したところ、あなたが行ったように機能するはずなので、元の投稿は無視してください。reportID の内容がオプションの 1 つと完全に一致していますか? 文字列ではなく数値の場合は、試してみてください

document.getElementById("reportnames").value = "" + reportID;


オリジナル:コンボボックスの選択されたオプションを設定するには(htmlの「選択」を意味すると仮定)、目的のオプションの「選択された」属性をtrueに設定する必要があります。

var select = document.getElementById("reportnames");
for (var i = 0; i < select.options.length; i++)
{
    if (...)
        select.options[i].selected = true;
}


オプションを特定するには何らかの方法が必要です。レポート ID を保存することで実現できます。次に、 ... を次のように置き換えることができます。

select.options[i].ReportId == reportID


reportID を各オプションの「id」属性として設定すると、次のようにすることもできます。

document.getElementById(reportID).selected = true;
于 2012-09-17T09:08:36.803 に答える