【发布时间】:2014-08-03 04:42:46
【问题描述】:
我正在尝试测试用户是否两次输入相同的密码。
然而,一旦.setCustomValidity 被触发,如果输入有效输入并按下提交,它将不会重置为有效。
这是我的 JSFIDDLE link 的链接。 JSFIDDLE 显示一个我无法识别的错误。
这是我的 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>
这两个输入是 Pass 和 PassRe 的给定 ID。
JS 测试两个输入是否相等。
如果它们不相等,脚本会设置 .setCustomValidity 和 demo 文本以显示错误。
(或者最后这就是我想要它做的事情。)
还有我的 JS
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');
};
}
【问题讨论】:
-
jsfiddle 不运行
validateInput,因为它被定义为本地函数。这是由使用“onLoad”选项引起的。这是工作的 jsfiddle:jsfiddle.net/7GjvL -
@JukkaK.Korpela 谢谢,但是在输入无效输入后它仍然没有重置。为了让 JS 加载,你需要做些什么改变?
-
@JukkaK.Korpela 我看到 JSFIDDLE 选项发生了什么变化。我会看看那个重复的谢谢。
标签: javascript html validation