2011-03-08 79 views
9

我有沒有任何形式的周圍下面輸入:如何使用Prototype獲得輸入值?

<input type="text" value="myValue" name="td_website static" class="td_inner_input"> 

我怎樣才能與原型的輸入值?我試圖使用alert($('tb_website static').value);,但它不起作用。

+0

好的謝謝Jaroslav! – trouble 2011-03-08 13:38:59

回答

15
alert($$('[name="td_website static"]')[0].value) 
+0

我變成了一個錯誤:'code'alert($('input [name = td_website static]')。value); is null'code' – trouble 2011-03-08 13:22:34

+0

@code:我沒有注意到這個名字中有一個空格(你需要用雙引號將空格轉義出來)。請記住,選擇器返回一個數組,而不是單個元素。 – 2011-03-08 13:37:10

+0

謝謝雅羅斯拉夫!其作品! :d – trouble 2011-03-08 13:41:51

0

那是因爲$()函數是getElementById()的別名。這意味着你需要給和ID在你輸入:)

<input type="text" value="myValue" id="td_website static" name="td_website static" class="td_inner_input"> 
+0

但現在我用我的布林我認爲還有一個別名,仍然基於id,但tht直接返回值,$ F()或$ A(),但我不能在谷歌中找到它: ) – Tsadiq 2011-03-08 13:12:47

+0

我不能/不應該寫一個ID到這個輸入!所以我必須試試getByName!這是可能的?? – trouble 2011-03-08 13:13:56

2

我敢肯定,$('tb_website static')將尋找與該ID不是名稱的元素。

再來看看PrototypeJS Documentation

+0

謝謝!以及如何在這裏使用getbyname? – trouble 2011-03-08 13:14:50

+0

我不知道這是否會工作'$$('[name =「tb_website static」]')'但這可能是您最好的選擇。 – Lazarus 2011-03-08 13:18:40

6

您需要使用$$函數返回一個array。有幾種方法可以使用enumerable結果。

如果你知道只會有一個匹配的元素,然後使用此:

$$('[name="tb_website static"]').first().value 

如果有不止一個輸入(這是有效的HTML),那麼這得值的數組:

$$('[name="tb_website static"]').map(Form.Element.getValue) 

(通過經由Form.Element.getValue映射 - 別名爲$F - 不他們的值存儲在一個value屬性更好手柄瀏覽器的差異和非input元素)