2013-05-21 80 views
0

這是我第一次嘗試javascript,並且無法正常工作。我有一個文本框和提交按鈕的PHP文件。點擊提交按鈕後,我想讓javascript進行驗證以確保文本框不爲空。請參閱下面的代碼。運行時,單擊提交按鈕時不會發生任何反應。在一個PHP文件中使用javascript進行表單驗證

<html><head><script type="text/javascript"> 
function formValidator() {   
    var client_name = document.getElementByID('client_name');   
    if(notEmpty(client_name, "Client Name Blank")){ 
      return True;  
    } 
    return False;   
} 

function notEmpty(elem, helperMSG) { 
    if(elem.length == 0) { 
     alert(helperMSG); 
     elem.focus(); 
     return False; 
     } 
    return True; 
    } 
</script></head> 

<?php 
    echo '<body><form onsumbit="return formValidator()" method="post"> 
     <table border="1" cellspacing="0" cellpadding="0"><tr><td colspan="2"> 
     <h1>Add Account</h1></td></tr> 
     <tr> 
     <td>Client Name: <font size="1">(required)</font></td> 
     <td><input type="text" id="client_name" name="client_name" size="35"/></td></tr> 
     </table> 
     <input type="submit" name="submit_account" value="Add Account"/> 
     </form></body></html>'; 
?> 
+0

你不是應該關閉''後'>' –

+0

@harsha的''標籤打開,在'echo'關閉?語句(''結束標記也在那裏),所以當我發送給客戶端時,它將最終成爲有效的HTML,據我所知。爲什麼它必須被「回聲」而不是簡單的標記,我不知道。 – ajp15243

+0

@ ajp15243:對不起,我的意思是'' –

回答

1
  1. JavaScript是區分大小寫的。沒有定義TrueFalse(你的意思是truefalse),所以在遇到它們時,JavaScript引擎會拋出異常並恢復正常的表單提交。
  2. 您正在測試HTMLInputElementlength屬性(除非您另行定義)將始終爲undefined。您要測試的長度。 elem.value.length
+0

+1很好的解釋。 –

+0

和雙重檢查是多餘的... –

0

幾個問題:

1)真假,不會被識別爲JavaScript是區分大小寫的。 嘗試使用true和false。

2)你還需要使用elem.value.length(或只是elem.value)

所以更改

elem.length

到 elem.value.length。

3)不需要兩次檢查真/假,一次就足夠了。

html><head><script type="text/javascript"> 
function formValidator() {   
    var client_name = document.getElementByID('client_name');   
    return notEmpty(client_name, "Client Name Blank"); // no need for true false 
} 

function notEmpty(elem, helperMSG) { 
    if(elem.value.length == 0) { ///changed to use value. 
     alert(helperMSG); 
     elem.focus(); 
     return false; //change to lowercase false 
    } 
    return true; //change to lowercase true. 
    } 
</script></head> 
+0

爲什麼投票下降??? –

+0

我認爲-1是你答案的第一稿。 – ajp15243

+0

你給我的-1? –

0

使用此: -

<script type="text/javascript"> 
    function formValidator() {   
     var client_name = document.getElementByID('client_name');   
     if(notEmpty(client_name, "Client Name Blank")){ 
       return true;  // Changed True to true 
     } 
     return false;   // Changed False to false 
    } 

    function notEmpty(elem, helperMSG) { 
     if(elem.value.length == 0) // checking length of an element's value 
{ 
      alert(helperMSG); 
      elem.focus(); 
      return false; // Changed False to false 
      } 
     return true; // Changed True to true 
     } 
    </script> 
+1

你應該解釋你改變了什麼以及需要改變的原因,而不是僅僅發佈代碼並讓其他人尋找你所做的改變。 – ajp15243

+0

我按照你所說的完成了。 :) –

+0

爲什麼downvoted ?? –