我有一个带有文件上传选项的页面,使用
<input type="file" name="fileUpload" />
它工作正常。
我在屏幕上还有一个Clear按钮,它调用一个方法来将所有页面字段重置为其默认值。
我使用
@SkipValidation
该clear()
方法,因此如果您清除包含无效数据的页面,则不会收到错误消息。
我的问题是:
如果我点击上传一个太大的文件然后点击Clear按钮,我会收到
"File too large"
消息,因为这是由默认堆栈(至少这是我的理解)而不是我的验证代码生成的。
我document.getElementById('commentAction').reset();
在该方法中使用,但这无济于事。
如何在没有任何错误消息的情况下重置页面?
UDATE 根据我收到的建议,我正在使用以下 jquery。
function clearForm()
{
$(':input').not(':button, :submit, :reset, :hidden, :checkbox, :radio').val('');
$(':checkbox, :radio').prop('checked', false);
}
以及Clear按钮的以下struts2
<s:submit key="button.clear" cssClass="submit" onclick="clearDirtyFlag(); clearForm(); return false" tabindex="18"/>
现在它会在不离开页面的情况下清除输入字段,但我在页面上有一个由以下 struts2 代码生成的列表
<s:iterator value="commentViewList" >
<div class="row rowaltcolor">
<div>
<s:url var="commentLink" action="commentAction" method="getCommentDetails">
<s:param name="commentId"><s:property value="commentInfo.commentId"/></s:param>
</s:url>
<div class="col-sm-1 col-xs-12 text-left"><s:a href="%{commentLink}" tabindex="18"><s:property value="commentTypeCode"/></s:a></div>
<div class="col-sm-2 col-xs-12 text-left"><s:property value="commentInfo.name"/></div>
<div class="col-sm-2 col-xs-12 text-left"><s:property value="commentInfo.organization"/></div>
</div>
</s:iterator>
此列表不会被清除,因为它不是生成的 html 中的字段。当我查看源 html 时,列表值在 html 中被硬编码。我可以在客户端清除列表还是需要在服务器端清除并重新显示页面?谢谢!