我使用JS检查,如果两个字段匹配,但我需要一种方法来禁用提交按钮,如果他们不匹配,然后启用一旦他们这样做匹配:防止提交字段不匹配
<label>New password:</label><br><input type="password" name="new_password" id="password1"/><br><br>
<label>Confirm password:</label><br><input type="password" name="new_password_check" id="password2" /><br><br>
<p id="validate-status"></p>
$(document).ready(function() {
$("#password2").keyup(validate);
});
function validate() {
var password1 = $("#password1").val();
var password2 = $("#password2").val();
if(password1 == password2) {
$("#validate-status").text("Passwords Match!");
}
else {
$("#validate-status").text("Passwords Do Not Match!");
}
}
修订
<form method="post" action="password_change.inc.php">
<input type="hidden" name="user_id" value="<? echo $_SESSION['user_id']; ?>" />
<label>New password:</label><br><input type="password" name="new_password" id="password1"/><br><br>
<label>Confirm password:</label><br><input type="password" name="new_password_check" id="password2" /><br><br>
<p id="validate-status"></p>
<input id="#submit-button" type="submit" value="Change password" />
</form>
<script>
function validate() {
var password1 = $("#password1").val();
var password2 = $("#password2").val();
if(password1 == password2) {
$("#validate-status").text("Passwords Match!");
$('#submit-button').prop('disabled', false);
}
else {
$("#validate-status").text("Passwords Do Not Match!");
$('#submit-button').prop('disabled', true);
}
}
</script>
我已经更新了我的代码按下面的一种建议,但它仍然会允许我发布形式不禁止,直到字段匹配...
我在此看到的一个缺陷是仅针对#password2发起的事件。如果他们让他们匹配,然后改变#password1?为什么不对提交进行检查或对两个密码或两者都执行$(.class).blur? – Ju66ernaut
那么更好的方法是什么? – PhpDude
在'#password1'上简单地将'validate()'绑定到keyup',就像'#password1'一样# –