1

我正在使用 HTML5 表单验证,并在 IE11 中发现了一个奇怪的问题。该问题不会出现在 Chrome、Firefox、Opera 或 Edge 中。

基本上,IE11 似乎无法正确执行表单重置。我希望表单重置可以清除所有验证错误并将表单值重置为初始值。在下一次提交时,我希望表单能够重新验证。

在表单重置期间似乎发生的只是值被重置 - 除非用户更改字段,否则验证错误状态(甚至成功验证)似乎仍然存在。

我可以为我的 Web 应用程序看到的唯一解决方法是重新加载页面而不是执行表单重置。还有其他想法吗?

工作流程如下:

  1. 使用 IE11,从所需输入字段中删除文本。
  2. 单击提交,出现验证错误。
  3. 单击重置,输入字段值恢复为初始值。
  4. 单击提交,出现验证错误,但该字段已使用初始值填写。

    <!DOCTYPE html>
    <html>
    <head>
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
    </head>
    <body>
      <form id="theForm" name="theForm">
        <input type="text" name="textBox" value="test" required>
        <input type="submit">
        <input type="reset">
      </form>
    </body>
    </html>

4

1 回答 1

1

我能够提出这个问题,但不幸的是,对于这个特定问题没有任何解决方案。

您可以尝试使用解决方法,例如首先将文本框值设置为空,然后使用 JS 重置表单。

<!DOCTYPE html>
<html>
<head>
  
<script type="text/javascript">

function resetfrm()
{
document.getElementById("txt1").value='';
document.getElementById("theForm").reset();

alert("clear");
}
</script>
</head>
<body>
  <form id="theForm" name="theForm">
    <input type="text" name="textBox" id="txt1" value="test" required>
    <input type="submit">
    <input type="button" onclick="resetfrm()" value="Reset">
  </form>
</body>
</html>

于 2018-10-23T05:12:39.753 回答