2015-10-04 98 views
1

我努力做到以下幾點:簡單的JavaScript驗證工作不

HTML代碼

<body> 
    <form name="myform"> 
    <table> 
     <tr> 
      <td>First Name:</td> 
      <td><input type="text" id="first_name"></td> 
      <td><p id="demo"></p></td> 
     </tr> 
     <tr> 
      <td><input type="submit" id="Submit" onclick="validate()"></td> 
     </tr> 
    </form></body> 

JavaScript代碼

<script> 
    function validate(){ 

     var fname = document.getElementById("first_name").value; 
     if(fname.length>0){ 
      document.getElementById("demo").value=""; 
     } 
     else{ 
      document.getElementById("demo").value="Name field empty"; 
     } 
    } 
    </script> 

當我點擊與空的名字字段中的按鈕,它應將「名稱字段爲空」分配給它,但即使腳本的控制權在那裏,但它不會打印標籤中的任何內容。

+1

您需要使用'.innerHTML'而不是'.value'段落標記具有內部內容,而不是值。您可能希望添加'event.preventDefault()'來停止提交 – NewToJS

+0

的表單...並且您需要防止在驗證失敗時提交表單。 – CBroe

+0

@NewToJS:感謝它的工作。 – Ven

回答

0

我認爲你應該代替試試這個:d

<script> 
    function validate(){ 

     var fname = document.getElementById("first_name").value; 
     if(fname!=""){ 
      document.getElementById("demo").innerHTML=""; 
     } 
     else{ 
      document.getElementById("demo").innerHTML="Name field empty"; 
     } 
    } 
    </script> 

你想檢查該字段爲空或不那麼在這種情況下FNAME足以一直使用。如果變量fname(它是first_name字段的值)不爲空,那麼它繼續執行將.innerHTML將「demo」的HTML內容設置爲「」的語句。您使用的.value與與演示相關的顯示HTML內容無關:D。我希望我的英語對你理解這一點並不難。

+1

**你應該試試這個**並沒有解釋這個問題,這是一個不好的答案。 – NewToJS

+0

Ouch:S有點新,所以,我會盡快解決這個問題 –

+0

毫無意義地修復它,這個問題已經在OP的問題的意見中解決了。 – NewToJS