在Javascript中比较表单中的两个字段-不起作用
谁能告诉我我做错了什么?我的comparePasswords()不起作用在Javascript中比较表单中的两个字段-不起作用,javascript,jquery,html,Javascript,Jquery,Html,谁能告诉我我做错了什么?我的comparePasswords()不起作用 <script> function comparePasswords() { if (post-form.password.value != post-form.password2.value) { $('passwordShow').inne
<script>
function comparePasswords()
{
if (post-form.password.value != post-form.password2.value)
{
$('passwordShow').innerHTML = '';
}
else
{
$('passwordShow').innerHTML = 'Passwords do not match';
}
}
</script>
<form id="post-form" action="signup.php" method="post" >
<input type="password" id="password" name="password" onkeyup="testPassword(this.value);" maxlength="50" size="25" tabindex="102" value="">
<input type="password" id="password2" name="password2" onkeyup="comparePasswords();" maxlength="50" size="25" tabindex="104" value="">
</form>
函数比较密码()
{
if(post-form.password.value!=post-form.password2.value)
{
$('passwordShow')。innerHTML='';
}
其他的
{
$('passwordShow')。innerHTML='密码不匹配';
}
}
if中的测试是反向的。第一个分支正在测试两个密码是否不相等。您需要使用
document.getElementById('password').value
及
而且,你的逻辑是错误的。如果密码不匹配,将触发第一个条件块
编辑
似乎您正在使用jQuery,所以只需使用
$('#password').val()
获取字段的值
您还应该使用jQuery(也可以)和
html()
方法设置innerHTML。问题在于如何访问表单对象
post-form.password
对于javascript引擎,这与以下内容相同:
post - (form.password)
此外,您还必须为表单提供一个name
属性(而不仅仅是一个id)才能以这种方式访问它。如果您想通过名称访问它,您可以使用如下内容:
document['post-form'].password
或按id:
document.getElementById("post-form");
+1.15查尔?呵呵:)!
document.getElementById("post-form");