我有一个表单(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。任何帮助将不胜感激,如果任何愿意需要更多信息的人,我会提供。谢谢你们。
答案 0 :(得分:0)
您应该使用以下内容: <input type="reset" value="Reset">
<form method="POST">
...
<input type="text" size="xx" value="xx"><br />
<input type="reset" value="Reset">
<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);