是否有可能清除struts2文件输入标签?

时间:2010-01-18 10:22:09

标签: struts2 tags file-io

我正在使用Struts2进行Web应用程序开发。我有这个特殊的问题,即使我用谷歌搜索后也无法找到解决方案。

我有3个标签,每个标签都有一个超链接或按钮,如果之前选择了任何内容,则必须使用它来清除文件路径。在网上找到的解决方案是重置表单..但是所有s:文件标签都将被清除,因为所有标签都必须采用相同的形式。

有没有办法在某些点击时清除单个文件输入?

1 个答案:

答案 0 :(得分:1)

一个类似于我们使用的解决方案是删除input元素并在其位置创建一个具有相同名称的新input元素。

编辑:这是我拼凑的一个例子。

<script type="text/javascript">
    function clearFoo() {
        var inp = document.getElementById("foo");
        var parent = inp.parentNode;

        // Create the new input element.
        // Copy over any attributes you need.
        var newInp = document.createElement("input");
        newInp.type = "file";
        newInp.name = inp.name;

        // Replace the old node with the new node.
        parent.insertBefore(newInp, inp);
        parent.removeChild(inp);

        // The new node is the new "foo".
        newInp.id = "foo";
    }
</script>

<s:file id="foo" name="foo"/>

<button onclick="clearFoo();">Click</button>