在Javascript中比较表单中的两个字段-不起作用

在Javascript中比较表单中的两个字段-不起作用,javascript,jquery,html,Javascript,Jquery,Html,谁能告诉我我做错了什么?我的comparePasswords()不起作用 <script> function comparePasswords() { if (post-form.password.value != post-form.password2.value) { $('passwordShow').inne

谁能告诉我我做错了什么?我的comparePasswords()不起作用

        <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");