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

时间:2015-03-11 20:51:53

标签: html validation jsp error-handling struts

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

我有一个html:reset按钮,但它不会清除文本框中的数字。如果您单击文本框并在验证错误后手动清除数字,然后单击重置按钮,它会重新输入数字。我已使用DOCUMENTS类尝试了许多不同的代码段使用脚本标记内的函数。以下是我尝试过的许多代码之一:

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

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

我也按类名和标签名方法尝试了get元素,但没有任何工作。

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

3 个答案:

答案 0 :(得分:0)

您应该使用以下内容: <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>

答案 1 :(得分:0)

这是我的答案:      function 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 = '';
}

}

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

答案 2 :(得分:0)

创建清洁工

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);