在JavaScript函数中创建的DOM元素在返回函数后消失

时间:2013-01-16 16:09:32

标签: javascript spring dom dwr

我有一个允许多项选择的下拉列表。用户从列表中进行选择,然后单击提交按钮,其中onclick = test()调用JS函数。我正在使用Jsp页面,这是一个带有DWR的Spring MVC框架项目,用于远程服务。

从远程服务返回的数据 - dwrService由回调函数handleAddSuccess处理。根据所选的项目,我需要填充一个或多个textareas。从查看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中设置了textarea元素并填充了值,但是一旦函数返回,textarea元素就会消失。

1 个答案:

答案 0 :(得分:1)

return false内没有test(),因此单击提交按钮并将页面重置为初始状态时,表单会被提交(具体取决于服务器对提交的内容的处理方式)形式)。