複数選択が可能なドロップダウン リストがあります。ユーザーはリストから選択し、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 で設定され、値が取り込まれているのを見ることができましたが、関数が戻ると、テキストエリア要素は消えます。