我正在尝试比较两个表单输入“密码”和重新输入密码“以确保相同。我通过将密码发送到一个单独的PHP来回复结果来验证密码(工作正常)
<script type="text/javascript">
$(document).ready(function() {
$('#password_feedback').load('password-check.php').show();
$('#password_input').keyup(function() {
$.post('password-check.php', {
password: form.password.value
},
function(result) {
$('#password_feedback').html(result).show();
});
});
});
</script>
我尝试发送密码并重新输入=密码给PHP来比较没有运气。我可以将两者与每个键盘进行比较。
答案 0 :(得分:1)
不需要jQuery,添加功能:
function checkPass(input) {
if (input.value != document.getElementById('re-enter-password').value) {
input.setCustomValidity('Passwords should match.');
} else {
input.setCustomValidity('');
}
}
将此添加到您的重新输入密码:oninput="checkPass(this)"
或强> 只需在要进行比较的部分调用此函数:
function checkPass() {
var input = document.getElementById('password');
if (input.value != document.getElementById('re-enter-password').value) {
input.setCustomValidity('Passwords should match.');
} else {
input.setCustomValidity('');
}
}
答案 1 :(得分:0)
如何为每个输入添加一个类,然后:
if($(".password").val() == $(".re-enter-password").val()){
alert("it matches")
} else {
alert("no match yet");
}
答案 2 :(得分:0)
您在PHP脚本中检查了什么?有什么特别证明使用PHP的理由吗?
你只能用JS做到这一点,你不需要AJAX部分。
HTML:
<input type="password" id="password">
<input type="password" id="password_cf">
<div class="result"></div>
JS(jQuery):
$('#password_cf').on('keyup', function(){
if($('#password_cf').val()== $('#password').val())
$('.result').html('They match');
else
$('.result').html('They do not match');
});
小提琴:http://jsfiddle.net/2sapjxnu/
如果您只想在该字段上丢失焦点后再进行检查,则可以使用blur事件。它比对每个键进行验证的“响应性”要小一些,但我认为性能更高。
答案 3 :(得分:0)
鉴于此标记 -
<input type="password" name="pw1" />
<input type="password" name="pw2" />
您可以使用此类代码 -
检查客户端,而无需多次往返服务器$('[name="pw2"]').blur(function() {
var pw1 = $('[name="pw1"]').val();
var pw2 = $('[name="pw2"]').val();
if(pw2 != pw1) {
alert('passwords do not match');
}
});
答案 4 :(得分:0)
将2个表单输入字段与JavaScript匹配,将其发送到服务器以获取断言响应可能会导致糟糕的用户体验,因为如果您在每个keyPress上执行此操作,则会产生不必要的互联网流量 - 同时用户正在等待。
那么,为什么不直接将这两个字段与JavaScript匹配? 如果您在服务器上使用特定的正则表达式进行验证检查,则可以让服务器放置该正则表达式&#34;模式&#34;在HTML字段中 - (不需要JavaScrpt)。然后,onkeyup事件你可以简单地执行以下操作:
form.field2.onkeyup = function()
{
if (form.field1.value !== form.field2.value)
{
/* some code to highlight the 2 fields,
or show some message, or speech bubble */
return;
}
}
form.field1.onkeyup = form.field2.onkeyup;