0

複数選択が可能なドロップダウン リストがあります。ユーザーはリストから選択し、JS 関数を呼び出す onclick=test() で送信ボタンをクリックします。私は Jsp ページを使用しています。これは、リモート サービス用の DWR を備えた Spring MVC フレームワーク プロジェクトです。

リモート サービス (dwrService) から返されたデータは、コールバック関数 (handleAddSuccess) によって処理されます。選択した項目に基づいて、1 つまたは複数のテキストエリアを作成する必要があります。Firebug を見ると、textarea が表示されて入力されていることがわかりますが、関数 test() が完了すると、textarea は消えます。どこでも答えを探していますが、結果はありません。

function test() {
var careIDs = dwr.util.getValue("careIDs");
dwrService.getNewCares(careIDs, {
callback : handleAddSuccess,
errorHandler : handleAddError
});
}

function handleAddSuccess(data) {
    var aFragment = document.createDocumentFragment();
    var divta1 = document.getElementById("divta1");
    for (i = 0; i < data.length; i++) {
        var ta = document.createElement("textarea");
        ta.setAttribute("id", "definition"+i);
        ta.setAttribute("cols", "75");
        ta.setAttribute("rows", "75");
        divta1.appendChild(ta);
        aFragment.appendChild(divta1);
    }      
    document.body.appendChild(aFragment);

    for (i = 0; i < data.length; i++) {
       dwr.util.setValue("definition"+i, data[i].definition);
    }
alert(" end of handleAddSuccess " ) ;
}

コールバック関数からも戻りましたが、ケースは同じです。テキストエリア要素が Firebug で設定され、値が取り込まれているのを見ることができましたが、関数が戻ると、テキストエリア要素は消えます。

4

1 に答える 1

1

return false内からではないtest()ため、送信ボタンがクリックされたときにフォームが送信され、ページが初期状態にリセットされます (送信されたフォームに対するサーバーの処理によって異なります)。

于 2013-01-16T16:24:23.973 に答える