2013-11-05 66 views
0

我剛剛測試一些代碼,我不能得到這個工作:讀輸入和打印變量 - JavaScript和HTML 4.01

<HTML> 
<head> 

<title> Page 1 </title> 

<script> 
function myFunction() 
{ 
var x=document.getElementById("myEmail") 
document.write(x) 
} 
</script> 

</head> 

<body> 

<form> 
<p> Input your email </p> 
<input name="myEmail" type="text"> 
</form> 

<button type="button" onclick="myFunction()">Submit Email</button> 

</body> 

</HTML> 

所有我想要的是有用戶類型將某些內容放入文本中,由解析器讀取,放入一個變量,然後在屏幕上打印變量。如果我知道這一點的話,它對我的​​其他項目會有很大的幫助。誰能幫忙? 注意:我不想使用HTML5,因爲它刪除了我喜歡的一些標籤,那麼我們可以使用HTML 4.01還是什麼?

+2

堅持使用HTML 4.01沒有一個好的理由。 – Ryan

+0

什麼標籤被刪除,你喜歡? – tymeJV

+0

getElementById?那麼,ID在哪裏? – krish

回答

2

第1步是使用HTML 5,縮進你的代碼,並使用分號。

<!DOCTYPE html> 

<html> 
    <head> 
     <title> Page 1 </title> 

     <script> 
     function myFunction() { 
      var x = document.getElementById("myEmail"); 
      document.write(x); 
     } 
     </script> 
    </head> 
    <body> 
     <form> 
      <p> Input your email </p> 
      <input name="myEmail" type="text"> 
     </form> 

     <button type="button" onclick="myFunction()">Submit Email</button> 
    </body> 
</html> 

第二步是看AT的已經寫了,看到它的null,忒當document.getElementById將返回null,並認識到,有一個與你的文檔中的myEmailid沒有元素。它只有一個name。當你在它的時候放下表格。

<body> 
    <p>Input your email </p> 
    <input id="myEmail" type="text"> 
    <button type="button" onclick="myFunction()">Submit Email</button> 
</body> 

下一步是該再次嘗試,並認識到x是一個元素,而不是一個字符串,你想獲得它的價值。

function myFunction() { 
    var x = document.getElementById("myEmail"); 
    document.write(x.value); 
}

「未來良好做法」步驟,在沒有特定的順序:

  • 把你的腳本在底部和停止使用內聯事件偵聽器
  • 把你的腳本在一個外部文件
  • 使用<label>

如果你不打算這樣做更有用的東西比寫電子郵件回來,也考慮使用document.body.appendChild(document.createTextNode(…)),這不會抹去文件的其餘部分。 DOM非常棒。

+1

我真誠地沒有希望任何人去寫你所做的一半。 +1讓另一個靈魂進入正軌。 –

+0

非常感謝! –

0

添加ID到輸入

<input name="myEmail" type="text" id="myEmail"> 

然後寫入值

document.write(x.value) 
0

的document.getElementById返回的DOM元素。打印DOM元素沒有意義,其輸出可能因瀏覽器而異。

你想要的是打印的輸入欄的輸入值,因此檢查value屬性:

function myFunction() 
{ 
var x=document.getElementById("myEmail").value 
document.write(x) 
} 

其次,你的HTML代碼沒有在元素上的ID屬性,所以的getElementById查找將失敗。添加ID:

<input name="myEmail" type="text" id="myEmail"> 

關於你提到的關於HTML 4比HTML注5

注:我不想使用HTML5,因爲它消除了一些我喜歡的標籤,所以我們可以使用HTML 4.01或其他?

該評論很有趣。不知道你指的是哪個標籤,我不能說爲什麼他們被刪除,但我想有可能是相同的。 HTML 5不會刪除我知道的任何HTML功能。

這就像是說你不會用自動變速器駕駛汽車,因爲它沒有離合器。

+0

HTML5刪除了一些讓它更復雜的注意事項 –

0

您只需添加一個id屬性,其值與input type =「text」的name屬性的值相同,並修改腳本以存儲值而不是元素本身。

<html> 
<head> 
<title> Page 1 </title> 
<script> 
    function myFunction() 
    { 
    var x=document.getElementById("myEmail").value; 
    document.write(x); 
    } 
</script> 
</head> 
<body> 
    <form> 
    <p> Input your email </p> 
    <input name="myEmail" id="myEmail" type="text"> 
    </form> 
<button type="button" onclick="myFunction()">Submit Email</button> 
</body> 
</html>