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