2011-05-19 96 views
0

所有,的Javascript更新失敗

下面是簡單的代碼,更新與輸入的字段由用戶輸入。但是,更新沒有發生。任何人都可以讓我知道這個問題嗎?

<html> 
    <head> 
     <title>Rooms</title> 
     <script type="text/javascript"> 
     function populate() 
     { 
      var newName = document.getElementsByName("roomNameInput").value; 
      document.getElementsByName("nameDisplay").value = newName; 
     } 
     </script> 
    </head> 
    <body> 
     <h3>Configure: </h3><i name="nameDisplay"></i><br /> 
     Enter the Room name: <input type="text" name="roomNameInput" onkeypress="populate()"><br /> 
    </body> 
</html> 

試圖與document.getElementsByName("nameDisplay").innerHTML但未能

回答

2

HTML應該是這樣的

<h3>Configure: </h3> 
     <em id="nameDisplay"></em><br /> 
     Enter the Room name: <input id="roomNameInput" type="text" onkeyup="populate()"><br /> 

Javascript should be this:

​​

工作撥弄http://jsfiddle.net/DarkThrone/B5LP7/

3

nameDisplay不是輸入,所以你必須通過設置innerHTML屬性,而不是value改變其內容。此外getElementsByName不會在那裏工作,你必須設置它的idnameDisplay,並使用getElementById

<i id="nameDisplay"></i> 

...

document.getElementById("nameDisplay").innerHTML = newName; 

getElementsByName將返回元素的數組,所以你必須選擇的第一要素來獲取值:

var newName = document.getElementsByName("roomNameInput").value; 

你也可以設置inputid價值和使用getElementById,將其選中。


爲了讓事情變得更簡單,使用jQuery框架:

function populate() { 
    var newName = $('[name="roomNameInput"]').val(); 
    $("#nameDisplay").text(newName); 
} 
+0

試過..無法正常工作或 – 2011-05-20 00:00:23

+0

所做的更改..越來越不確定,我需要顯示的文本輸入。 – 2011-05-20 00:08:18

+0

將'onkeypress =「populate()」'改爲'onkeypress =「填充」' - 將大括號作爲處理程序執行該函數 – Zirak 2011-05-20 00:10:45

1

也許你可以嘗試改變:

document.getElementByName("nameDisplay").value = newName; 

document.getElementByName("nameDisplay").innerHTML = newName; 

但是,如果我可以建議,連擊做出那樣:
在HTML :

<h3>Configure: </h3><span id="nameDisplay"></span><br /> 

然後
在Javascript:

document.getElementById("nameDisplay").innerHTML = "<i>"+newName+"</i>"; 
2

document.getElementsById()返回元素的數組,所以速戰速決將做到以下幾點:

var newName = document.getElementsByName("roomNameInput")[0].value; 
document.getElementsByName("nameDisplay")[0].innerHTML = newName; 

一個更BETT呃的解決辦法是用id更換name屬性及與<em>替換<i>(因爲它不再是標準):

<em id="nameDisplay"></em> 
<input type="text" id="roomNameInput" onkeypress="populate()" /> 

然後切換你的JS:

var newName = document.getElementById("roomNameInput").value; 
document.getElementById("nameDisplay")[0].innerHTML = newName;