struts 验证错误后如何清除表单

How do you clear a form after struts validation error

我有一个表单 (JSP),我正在使用 Struts 来验证文本字段。例如,如果用户在 First name 文本框内输入数字,则显示错误,因为它只接受字母。消息与数字一起保留在屏幕上。当您右键单击并查看源代码时,您可以看到那里的数字,就好像它们是硬编码的一样。

我有一个 html:reset 按钮,但它不会清除文本框中的数字。如果您单击文本框并在验证错误后手动清除数字,然后单击 Reset 按钮,它会将数字放回原处。我尝试了许多不同的代码使用DOCUMENTS class 在脚本标签内有一个函数。这是我尝试过的许多代码之一:

 <input type="button" value="Clear Form" onclick="clearForm()"/> 

 <script type="text/JavaScript">
     function clearForm() {
     document.getElementById("FirstName").value=" ";  }
 </script>

我也尝试过通过 class 名称和标签名称方法获取元素,但没有任何效果。

我的名字文本框 ID 是 FirstName。 jsp 使用 HTML 和 Struts。任何帮助将不胜感激,如果有人愿意需要更多信息,我会提供。谢谢你们。

你应该使用这样的东西:<input type="reset" value="Reset">

<form method="POST">    
    ...

    <input type="text" size="xx" value="xx"><br />
    <input type="reset" value="Reset"> &nbsp; &nbsp; 
    <input type="submit" value="Submit" />

    ...
</form>

这是我的回答: 函数 clear_form_elements(ele) {

tags = ele.getElementsByTagName('input');
for(i = 0; i < tags.length; i++) {
    switch(tags[i].type) {
        case 'password':
        case 'text':
            tags[i].value = '';
            break;
        case 'checkbox':
        case 'radio':
            tags[i].checked = false;
            break;
    }
}

tags = ele.getElementsByTagName('select');
for(i = 0; i < tags.length; i++) {
    if(tags[i].type == 'select-one') {
        tags[i].selectedIndex = 0;
    }
    else {
        for(j = 0; j < tags[i].options.length; j++) {
            tags[i].options[j].selected = false;
        }
    }
}

tags = ele.getElementsByTagName('textarea');
for(i = 0; i < tags.length; i++) {
    tags[i].value = '';
}

}

然后我只需使用按钮调用此函数,它就会清除所有内容。谢谢你的帮助。

创建一个清洁器

private void cleanForm(ActionForm form, HttpServletRequest request) {
HeatingValidatorForm basicForm = (HeatingValidatorForm) form;

basicForm.set("ID of the field", restar the field like > new String[0] < for a string);

}

在动作中调用清洁

cleanForm(form,request);