Javascript .有效期;触发后不会重置

Javascript .有效期;触发后不会重置,javascript,html,validation,Javascript,Html,Validation,我正在尝试测试用户是否输入相同的密码两次 但是,一旦触发.setCustomValidity,如果输入有效输入并按下submit,它将不会重置为有效 这里是我的JSFIDLE的链接。 JSFIDLE显示了一个我无法识别的错误 这是我的HTML: <p id="demo">&nbsp; </p> <table> <form onsubmit="validateInput(); return false" method=post > &

我正在尝试测试用户是否输入相同的密码两次

但是,一旦触发
.setCustomValidity
,如果输入有效输入并按下submit,它将不会重置为有效

这里是我的JSFIDLE的链接。 JSFIDLE显示了一个我无法识别的错误

这是我的HTML:

<p id="demo">&nbsp;   </p>
<table>

<form onsubmit="validateInput(); return false"  method=post >
<tr>
    <td>Password</td>
          <td><input Id="Pass" name="Pass" type="password" required 
              placeholder="Secret" ></td>
        </tr>
        <tr>
   <td>Retype Password</td>
          <td><input Id="PassRe" name="PassRe" type="password" required 
               placeholder="Secret" ></td>
<tr>
     <td></td>

     <td>
         <input type="submit" class="Button" value="Submit">
         <input type="reset"  class="Button" value="Clear" name="ResetBtn">
     </td>
</tr>

</form>
</table>

Chrome以一种奇怪的方式处理
.setCustomValidity
。 由于
.setCustomValidity
由浏览器处理,因此问题取决于浏览器。 切换到完整JS验证并删除了使用
.setCustomValidity
修复问题的部分


JSFIDLE不运行
validateInput
,因为它被定义为本地函数。这是由于使用了“onLoad”选项造成的。下面是正在工作的jsfiddle:@JukkaK.Korpela谢谢,但在输入无效输入后,它仍然不会重置。要加载JS,您需要做哪些更改?可能是@JukkaK.Korpela的重复项我看到了JSFIDLE选项的更改。我会看那份复制件的谢谢。
function validateInput() {  

 var Pass1 = document.getElementById("Pass").value;
 var Pass2 = document.getElementById("PassRe").value;

if(Pass1 == Pass2){

      document.getElementById("PassRe").setCustomValidity('');                
      document.getElementById("demo").innerHTML=  ('');     

            }else{
      document.getElementById("PassRe").setCustomValidity('The passwords dont match');
      document.getElementById("demo").innerHTML=  ('The passwords dont match');                      

};
}