【问题标题】:How do you clear a form after struts validation errorstruts验证错误后如何清除表单
【发布时间】:2019-11-15 19:14:23
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: html validation jsp error-handling struts


    【解决方案1】:

    你应该使用这样的东西:&lt;input type="reset" value="Reset"&gt;

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

    【讨论】:

      【解决方案2】:

      这是我的回答: 函数 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 = '';
      }
      

      }

      然后我只需用按钮调用这个函数,它就会清除所有内容。不过感谢您的帮助。

      【讨论】:

        【解决方案3】:

        创建一个清洁器

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-08-03
          • 2013-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-23
          • 1970-01-01
          相关资源
          最近更新 更多