2013-05-18 12 views
1

我有一個簡單的Javascript驗證代碼,如果我將它發送到某個PHP地址,它工作正常,但如果我將它發送到我創建的PHP頁面,則驗證代碼無效。Javascript驗證在我的PHP中不起作用

該代碼目前非常基本,並使用正則表達式驗證某些字段。

基本上,如果我用給定的現成PHP文件(我無法訪問)嘗試它,它工作正常呈現我的錯誤對話框,直到所有的字段都是正確的。同時,在我製作的PHP頁面中,它捕獲錯誤,顯示對話框,但在OK警告框中單擊,它將字段提交給我的PHP文件。

有人能告訴我發生了什麼嗎?

謝謝。

這是JavaScript:

<script type="text/javascript"> 
    /* <![CDATA[ */ 
    // this function calls all the other functions that validate each field of the submitting form 
    function validate() { 
    var validated = false; 
    validated = validateRId() && validateEId(); 
    return validated; 
    } 
    // this validates the RID: checking that the field is filled with a number between 1 //and 99999 
    function validateRId() { 
    var RIdElement = document.getElementById("RID"); 
    patternRId = /^([1-9][0-9]{0,4})$/; 
    if (patternRId.test(RIdElement.value)) { 
     return true; 
    } else { 
     alert ("Please Enter your RID (a number range 1 to 99999))"); 
     RIdElement.focus(); 
     return false 
    } 
    } 
    // this validates the EventID: checking that the field is filled with a number between 1 and 99999 
    function validateEId() { 
    var EIdElement = document.getElementById("EID"); 
    patternEId = /^([1-9][0-9]{0,4})$/; 
    if (patternEId.test(EIdElement.value)) { 
     return true; 
    } else { 
     alert ("Please Enter the EID (a number range 1 to 99999))"); 
     EIdElement.focus(); 
     return false 
    } 
    } 
    /* ]]> */ 
</script> 
<p/> 
    <form action="http://adress.php" method="post" name="submitrunnertime" onsubmit = "return validate()"> 
    <table> 
     <tr><td>Runner ID*</td> 
     <td><input type="text" name="RID" id="RID" size="5" maxlength="5"/></td> 
     </tr> 
     <tr><td>Event ID*</td> 
     <td><input type="text" name="EID" id="EID" size="5" maxlength="5"/></td> 
     </tr> 
    </table> 
    <input type="submit" name="submit" value="submit"/> 
    <hr/> 
    </form> 
</body> 
</html> 

這是PHP:

<body> 
<?php 
    // access details as variables 
    $username = "xxxx"; 
    $password = "tttt"; 
    $hostname = "rrrrr"; 
    //connection 
    $connection = mysql_connect($hostname, $username, $password) or die ('connection problem:' . mysql_error()); 
    echo $connection . "CONNECTION SUCCEDED<br><br><br>"; 
    //select a database 
    $mydb = mysql_select_db("xxxx", $connection)or die ('db problem:' . mysql_error()); 
    echo $mydb . " DB SELECTED <br><br><br>"; 
?> 
</body> 
</html> 
+0

「驗證」功能中存在明顯的語法錯誤。請確保您已經採取了基本的調試步驟,例如在發佈問題之前檢查瀏覽器的錯誤控制檯。 – Pointy

+0

對不起,只是複製並粘貼錯誤。我的函數在語法上應該如下所示:{... && validateEId();返回驗證;} – user2396361

回答

1

你必須在JavaScript函數錯誤

試試這個

function validate() 
{ 
    var validated = false; 
    validated = validateRId() && validateEId() ;  
    return validated; 
} 
+0

嗨,謝謝。我的錯誤,我的功能實際上是 {... && validateEId();返回驗證;} 正如你糾正它。但問題總是存在...... – user2396361