iT邦幫忙

0

javascript 抓取input的值

不好意思,我是一個js的新手,可以說是完全不會,所以請各位大大幫忙一下了,

<tr>
<td>AA</td>
<td>BB</td>
<td>CC</td>
<td>DD</td>
</tr>
<tr>
<td><input type='text' name='ans[7][]'></td>
<td><input type='text' name='ans[7][]'></td>
<td><input type='text' name='ans[7][]'></td>
<td><input type='text' name='ans[7][]'></td>
</tr>
<tr>
<td><input type='text' name='ans[8][]'></td>
<td><input type='text' name='ans[8][]'></td>
<td><input type='text' name='ans[8][]'></td>
<td><input type='text' name='ans[8][]'></td>
</tr>
<tr>
<td><input type='text' name='ans[9][]'></td>
<td><input type='text' name='ans[9][]'></td>
<td><input type='text' name='ans[9][]'></td>
<td><input type='text' name='ans[9][]'></td>
</tr>

我有一個表單,他每一筆都是一個陣列,請問如果要取ans[9][3],js的部份要怎麼寫呢??

麻煩各位了!!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4
fillano
iT邦超人 1 級 ‧ 2009-10-11 18:43:33
最佳解答

你並沒有一個input的name屬性的值是ans[9][3],這樣取永遠取不到。不過可以透過name屬性的值是ans[9][]來找:

&lt;pre class="c" name="code">
var result = document.getElementsByName('ans[9][]')[3].value;
linustsai iT邦新手 5 級 ‧ 2009-10-11 18:56:44 檢舉

謝謝 fillano 大大您抽空回謝,真的感謝。
我大能知道怎麼取值了。但目前有個問題:
我的name是從 ans[1][] ~ ans[10][]
我想說用一個for迴圈,把這些value相加,
於是我發現了一個問題,就是在單引號內可以直接加變數嗎??

for (var $i=1; $i<11; $i++){
var val = document.getElementsByName('ans[i][]')[3].value;
sum += parseInt(val);
}

fillano iT邦超人 1 級 ‧ 2009-10-11 23:42:44 檢舉

你的變數名稱怎麼不一致?前面叫$i後面叫i??
另外,不必在引號內加,'ans['+i+'][]'就可以了阿。
還有,javascript的陣列索引是從0開始的,你從1開始編號不是不行,但是怕不小心會跟後面的陣列索引搞混。所以盡量一致,從0開始吧。

我要發表回答

立即登入回答