簡體   English   中英

HTML Javascript onsubmit忽略了我的JavaScript函數

[英]HTML Javascript onsubmit ignores my javascript function

我知道有幾個類似的問題要解答,但是沒有一個給我答案。 我停止了驗證用戶輸入的內容,直接進入了Activation.php。它在開始時就起作用了,但是后來我添加了驗證碼if語句,並且它停止了。 任何想法為什么它不再工作了?

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN"
      xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/1999/xhtml
                          http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd"
>

<head>
<link rel="stylesheet" type=text/css" href="stylesheet.css">

<script>

function validateForm() {

    var username = document.Register.uname;
    var password = document.Register.pword;
    var email = document.Register.email;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    var passw = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,41}$/;
    var str1 = removeSpaces(document.getElementById('captchaimg').value);
    var str2 = removeSpaces(document.getElementById('txtInput').value);

      if (username.value == "")
    {
        alert("Username is required.");
        username.focus();
        return false;
    }

      if (password.value == "")
    {
        alert("Please enter a password.");
        password.focus();
        return false;
    }
        if (!passw.test(password.value))
    {
        alert("Password must consist of 8 to 41 characters, contain at least on digit and at least 1 upper case character");
        password.focus();
        return false;
    }
      if (email.value == "")
    {
        alert("Please enter your email address.");
        email.focus();
        return false;
    }
        if (!filter.test(email.value ))
    {
        alert("Please enter a valid email address.");
        email.focus();
        return false;
    }
        if (str1 != str2)
    {
        alert("Captcha is incorrect");
        return false;
    }

    else{
    return true;
    }
}


</script>
</head>

<body>


 <form action="Activation.php" name="Register" accept-charset="UTF-8" method = 'POST'onsubmit = "return validateForm()"> 

  E-mail:       <input type="text" name="email" id = "emailid" value="<?PHP if(isset($_POST['email'])) echo htmlspecialchars($_POST['email']); ?>" size= "30" maxlength="30"  ><br><br>

  Username:     <input type="text" name="uname" id = "unameid" value="<?PHP if(isset($_POST['uname'])) echo htmlspecialchars($_POST['uname']); ?>"  > <label id="UserLabelId"><>  
  <br><br>

  Password:     <input type="password" maxlength="8" name="pword" id = "pwordid" value="<?PHP if(isset($_POST['pword'])) echo htmlspecialchars($_POST['pword']); ?>" size= "25" maxlength="25" ><br><br>

  Enter Captcha code below: </br>

  <img src ="captcha.php?rand=<?php echo rand();?>" id='captchaimg'><br>

  <input id="6_letters_code" id="txtInput" name="6_letters_code" type="text" value="<?PHP if(isset($_POST['6_letters_code'])) echo htmlspecialchars($_POST['6_letters_code']); ?>" placeholder="Type captcha here" ><br>

   <input type="hidden" id="txtCaptcha" /></label>

  <small>Can't read the image? click <a href='javascript: refreshCaptcha();'>here</a> to refresh</small> </br>

  <input type="submit" value="Register" name="submit" class="quoteButton">
  </form>


    <script language='JavaScript' type='text/javascript'>


    function refreshCaptcha(){
    var img = document.images['captchaimg'];
    img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
    }




    </script>

    </body>
    </html>`enter code here`

您有2個ID:

<input id="6_letters_code" id="txtInput" name="6_letters_code" type="text" value="<?PHP if(isset($_POST['6_letters_code'])) echo htmlspecialchars($_POST['6_letters_code']); ?>" placeholder="Type captcha here" ><br>

我很確定XHTML 1.0將僅采用與此元素相關聯的第一個ID,以便它永遠不會看到txtInput ID?

另外,對於JS中的STRING比較,您將要使用!==或===來代替if (str1 != str2)是否與double ==或!=兼容。

如果這些不能解決您的問題,請告訴我。

問題似乎出在我的驗證碼驗證部分。 一旦我注釋了以下內容,它就可以正常工作。

謝謝大家,如果您知道如何在javascript中驗證驗證碼,請告訴我!

//var str1 = removeSpaces(document.getElementById('captchaimg').value);
    //var str2 = removeSpaces(document.getElementById('6_letter_code').value);

and 
/*  if (str1 !== str2)
   {
       alert("Captcha is incorrect");
        return false;
    }*/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM