2012-07-18 111 views
2

我想知道以下是如何給我麻煩,它看起來很直接,但我不知道發生了什麼。JavaScript沒有得到價值

所以我有一個輸入框,我想用戶填寫了,我每次運行時以下

我拿到身份不明,我不知道爲什麼。使用下面的JavaScript

var price = document.getElementsByName("price") 
    alert(price.value); 
+0

保持使用'document.getElementById(「id」)''的習慣。請參閱[這裏](http://www.w3schools.com/jsref/met_doc_getelementbyid.asp) – 2012-07-18 10:30:26

回答

4
var price = document.getElementsByName("price")[0]; 
    alert(price.value); 

<input type="numbers" name="price" class="sell" placeholder="$0.00"> 

上午document.getElementsByName會給你的HTMLCollection(類型的數組)作爲返回類型。這是因爲你的dom中的許多元素可能會有相同的名稱。因此,如果您有多個具有相同名稱的複選框,則可以使用數組索引來引用每個複選框。

+0

返回類型不是數組,它是一個HTMLCollection。 – Quentin 2012-07-18 10:20:59

+0

感謝昆汀澄清 – 2012-07-18 10:22:27

4

你有幾個問題。

引起你的問題的是getElementsByName返回一個HTMLCollection(它就像一個數組),而不是一個單一的元素。在嘗試訪問其屬性之前,您需要關閉第一個項目。

var price = document.getElementsByName("price")[0]; 

二,numbers它不是一種輸入類型。 number (singular)是。第三,如果您舉例$0.00,那麼您要通知人們您希望他們鍵入一個以$開頭的值。您不能在號碼中登錄$

+0

+1,以便發現我錯過的所有細微問題;)。 – Matt 2012-07-18 10:18:10

+0

是的,我知道一個,我們刪除$後,用戶鐘錶鏈接,我們把$ 100.00轉換成美元10000 – RussellHarrower 2012-07-19 13:44:52

+0

@RussellHarrower - 如果你有一個'type =「number」'(並且瀏覽器支持它),那麼瀏覽器**不會允許用戶輸入$字符**,所以佔位符數據不應該建議他們應該。 – Quentin 2012-07-19 13:48:11