作者TKirby ( ^-^)
看板Web_Design
標題Re: [問題] javascript如何讀寫控制項陣列的值
時間Thu Feb 17 23:12:33 2005
如果用普通的 form.vname 的方式是行不通的,
因為 "[", "]" 基本上不能當作變數名稱
但是有點小技巧可以取
可以寫成 form["vname"] 的形式
所以 如果你想要存取第 i 個 <input type="text" name="test[]"/> 的值
就這樣寫
var result = document.form["test[]"][i].value;
這是取巧的方法,照理來說, form 是一個 HTMLFormElement,是一個 Node
不是 NodeList 或是 NamedNodeMap 或 HTMLCollection
所以應該不能用 form["test[]"] 這種相當於 form.NamedItem("test[]")
寫法的縮寫的寫法。
不過在 Firefox 1.0跟 IE6下試就是可以 XD
合理的寫法是 form.elements["test[]"] 之類的。
也許我漏了什麼?
※ 引述《mouse26 (請吱解我)》之銘言:
: 謝謝你的回答 這樣的確可以在javascript裡當陣列用了
: 不過如果一定要是有加[]的話 該怎麼辦呢?
: <input type="text" name="test[]">
: 因為這個表單是要傳給PHP接收的
: 所以必須要加[]php才會當作陣列接收
: 請問有什麼方法解決嗎?
: ※ 引述《TKirby ( ^-^)》之銘言:
: : 不用加 [] ,直接寫 test 用 javascript 就可以當陣列讀了
: : <form name="form1" method="post" action="">
: : <input type="text" name="test">
: : <input type="text" name="test">
: : <input type="text" name="test">
: : </form>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.52
※ 編輯: TKirby 來自: 140.112.30.52 (02/17 23:15)
1F:推 mouse26:ok 了解~謝謝!! 210.85.4.189 02/18