0

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

从远程服务 - dwrService 返回的数据由回调函数 - handleAddSuccess 处理。根据选择的项目,我需要填充一个或多个文本区域。通过查看 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 元素就会消失。

4

1 回答 1

1

您不是return false来自内部test(),因此当单击提交按钮并将页面重置为其初始状态时,表单将被提交(取决于服务器对提交的表单所做的操作)。

于 2013-01-16T16:24:23.973 回答