Javascript 如何重置Struts2文件控件

Javascript 如何重置Struts2文件控件,javascript,struts2,Javascript,Struts2,我的页面中有一个Struts文件控件。如果存在无效条目,我想重置文件控制。以下是我注意到的事情: 1) 大多数浏览器不允许我们重置文件控件。 2) 我们可以做的是用新控件替换现有控件,并复制所有原始控件的属性。 我这样做是因为: var newInput = document.createElement("input"); newInput.type = "file"; newInput.id = document.getElementById("myfilecontrol").

我的页面中有一个Struts文件控件。如果存在无效条目,我想重置文件控制。以下是我注意到的事情: 1) 大多数浏览器不允许我们重置文件控件。 2) 我们可以做的是用新控件替换现有控件,并复制所有原始控件的属性。 我这样做是因为:

var newInput = document.createElement("input");
    newInput.type = "file";
    newInput.id = document.getElementById("myfilecontrol").id;
    newInput.name = document.getElementById("myfilecontrol").name;
    newInput.className = document.getElementById("myfilecontrol").className;
    newInput.style.cssText = document.getElementById("myfilecontrol").style.cssText;
    document.getElementById("myfilecontrol").parentNode.replaceChild(newInput, document.getElementById("myfilecontrol"));

我的问题是,这只起作用一次。调用验证方法的是旧控件,而不是新控件。有没有办法让我的新控件自动调用验证方法?或者有没有其他更好的方法来重置struts文件控件?(刷新页面不是选项。)提前感谢。

一旦用户选择了错误的文件,我们必须在显示错误消息后清除该字段。它不会被自动清除。你的代码中的
x
是什么?@AndreaLigios:我们不能像你提供的链接中提到的那样,将struts中文件控件的值设置为空。这是大多数浏览器的安全功能。请打开答案中的链接。