我使用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'一樣# –