Javascript 为什么此表单在单击“提交”按钮时提交 var geid=函数(x){ var元素=document.getElementById(x); 返回元素; } 函数submitForm(){ var password=geid('password')。值; var passwordConfirm=geid('passwordConfirm'); //确认密码匹配非常重要 //还需要在PHP中对其进行验证> else if(密码==“”){ registerMessage.innerHTML=“请输入您的密码。”; 返回false; } else if(passwordConfirm==“”){ registerMessage.innerHTML=“请确认您的密码。”; 返回false; } else if(passwordConfirm!=密码){ registerMessage.innerHTML=“您的密码不匹配。”; 返回false; } 否则{ registerMessage.innerHTML=“带您到您的个人资料,请稍等…”; document.forms['registerform'].submit(); } } 密码 确认密码

Javascript 为什么此表单在单击“提交”按钮时提交 var geid=函数(x){ var元素=document.getElementById(x); 返回元素; } 函数submitForm(){ var password=geid('password')。值; var passwordConfirm=geid('passwordConfirm'); //确认密码匹配非常重要 //还需要在PHP中对其进行验证> else if(密码==“”){ registerMessage.innerHTML=“请输入您的密码。”; 返回false; } else if(passwordConfirm==“”){ registerMessage.innerHTML=“请确认您的密码。”; 返回false; } else if(passwordConfirm!=密码){ registerMessage.innerHTML=“您的密码不匹配。”; 返回false; } 否则{ registerMessage.innerHTML=“带您到您的个人资料,请稍等…”; document.forms['registerform'].submit(); } } 密码 确认密码,javascript,Javascript,如果,则不能从开始;如果 <script type="text/javascript"> var geid = function(x) { var element = document.getElementById(x); return element; } function submitForm(){ var password = geid('password').value; var passwordConfir

如果,则不能从
开始;如果

<script type="text/javascript">
var geid = function(x) {
        var element = document.getElementById(x);
        return element;
     }          


function submitForm(){
var password = geid('password').value; 
var passwordConfirm = geid('passwordConfirm');

//THIS IS OF HIGH IMPORTANCE THAT THIS CONFIRM PASSWORD MATCHES
//WILL NEED TO VALIDATE IT IN THE PHP AS WELL>
else if (password == ""){
    registerMessage.innerHTML = "Please enter your Password.";
    return false;  
}
else if (passwordConfirm == "") {
    registerMessage.innerHTML = "Please confirm your password.";            
    return false; 
}

else if (passwordConfirm != password) {
    registerMessage.innerHTML = "Your passwords don't match.";          
    return false; 
}
else {
     registerMessage.innerHTML = "Taking you to your profile, please wait a moment...";
     document.forms['registerform'].submit();
}
}

   <form method="post" action="register.php" id="registerform" onsubmit="return submitForm()">


     <label for="password" class="registerLabel">Password</label>
     <input type="password" name="password" id="password" class="registerText" /> <br />

     <label for="passwordConfirm" class="registerLabel">Confirm Password</label>
     <input type="password" name="passwordConfirm" id="passwordConfirm" class="registerText" /> <br />


        <div class="submitMessage">
            <input type="submit" id="submit" name="submit" value="Register" class="registerButton cleangray" /><br />
            <div id="registerMessage"><?php echo $error ?></div>  
        </div>

        <div class="clear"></div>

    </form>
这将阻止任何验证代码运行,并使用标准提交机制提交表单


这也不是进行验证的最佳方式。您可以构建一个消息字符串并一次性将它们全部报告回来,而不是在每次错误时返回。这样,用户就知道了所有的错误-您当前的方法将只设置一条消息。

如果,则不能从
开始;如果

<script type="text/javascript">
var geid = function(x) {
        var element = document.getElementById(x);
        return element;
     }          


function submitForm(){
var password = geid('password').value; 
var passwordConfirm = geid('passwordConfirm');

//THIS IS OF HIGH IMPORTANCE THAT THIS CONFIRM PASSWORD MATCHES
//WILL NEED TO VALIDATE IT IN THE PHP AS WELL>
else if (password == ""){
    registerMessage.innerHTML = "Please enter your Password.";
    return false;  
}
else if (passwordConfirm == "") {
    registerMessage.innerHTML = "Please confirm your password.";            
    return false; 
}

else if (passwordConfirm != password) {
    registerMessage.innerHTML = "Your passwords don't match.";          
    return false; 
}
else {
     registerMessage.innerHTML = "Taking you to your profile, please wait a moment...";
     document.forms['registerform'].submit();
}
}

   <form method="post" action="register.php" id="registerform" onsubmit="return submitForm()">


     <label for="password" class="registerLabel">Password</label>
     <input type="password" name="password" id="password" class="registerText" /> <br />

     <label for="passwordConfirm" class="registerLabel">Confirm Password</label>
     <input type="password" name="passwordConfirm" id="passwordConfirm" class="registerText" /> <br />


        <div class="submitMessage">
            <input type="submit" id="submit" name="submit" value="Register" class="registerButton cleangray" /><br />
            <div id="registerMessage"><?php echo $error ?></div>  
        </div>

        <div class="clear"></div>

    </form>
这将阻止任何验证代码运行,并使用标准提交机制提交表单


这也不是进行验证的最佳方式。您可以构建一个消息字符串并一次性将它们全部报告回来,而不是在每次错误时返回。这样,用户就知道所有的错误——您当前的方法只会设置一条消息。

因为您在JavaScript中有错误,所以您使用的是
else if
,而没有先定义
if
。由于此错误,所有JavaScript代码都会失败

改变

if (password == ""){
    registerMessage.innerHTML = "Please enter your Password.";
    return false;  
}

工作演示


顺便说一句,在你的代码中,HTML在
标记中,不确定这是否是你的错误。必须先关闭
标记,然后才能打开
标记。

因为JavaScript中有错误,所以在使用
else if
时,没有先定义
if
。由于此错误,所有JavaScript代码都会失败

改变

if (password == ""){
    registerMessage.innerHTML = "Please enter your Password.";
    return false;  
}

工作演示


顺便说一句,在你的代码中,HTML在
标记中,不确定这是否是你的错误。您必须先关闭
标签,然后才能打开
标签。

要使这成为一个好问题,您应该解释您认为不应提交表单的原因。代码转储不是一个问题要使这成为一个好问题,您应该解释为什么您认为表单不应该提交。代码转储不是一个问题更具体地说,此解析错误会阻止函数运行,因此不会调用任何
return false
;但是,表单提交仍在进行,因为该机制没有与Javascript耦合。@Tomalak Geret'kal:我只是在更新我的答案,因为你正在写评论:)@Tomalak Geret'kal:为编辑干杯-sleepy Friday morning。更具体地说,此解析错误阻止函数运行,因此不会调用任何
return false
;然而,表单提交仍然在进行,因为该机制没有与Javascript耦合。@Tomalak-Geret'kal:我只是在更新我的答案,因为你在写评论:)@Tomalak-Geret'kal:为编辑干杯-困倦的周五早上。