[問題] 一個javascript的問題

看板Web_Design作者 (vada)時間9年前 (2016/02/22 11:51), 9年前編輯推噓8(8013)
留言21則, 8人參與, 最新討論串3/3 (看更多)
<script language="javascript" type="text/javascript"> function submitcheck(num) { var check; var len; len="g"+1; for (var i=0; i<num; i++) { if(document.myform.g1[i].checked) //如果把g1用len變數代替就會跑不出來 check=true; if(check) { document.myform.action = "result.jsp"; myform.submit(); } else { alert("請至少選一個"); break; } } } </script> 為什麼用變數len就有問題呢?拜托大家,謝謝。 完整CODE <%@ page contentType="text/html;charset=utf-8" import="java.sql.*,java.util.Date,java.text.*" %> <html> <script language="javascript" type="text/javascript"> function submitcheck(num) { var check; var len; len="g"+1; for (var i=0; i<num; i++) { if(document.myform.g1[i].checked) check=true; alert(check); if(check) { document.myform.action = "result.jsp"; myform.submit(); } else { alert("請至少選一個"); break; } } } </script> <body> <form name="myform" method="post" action="result.jsp" onSubmit="return submitcheck()"> <table width="100%" border="1" align="center"> <tr bgcolor="#FF9900"> <td width="50%">問項一</td> <td width="50%">&nbsp;</td> </tr> <tr> <td width="690"><p>問項一。</td> <td><input type="radio" name="g1" value="7" > 非常同意 <input type="radio" name="g1" value="6"> 稍微同意 <input type="radio" name="g1" value="5"> 同意 <input type="radio" name="g1" value="4"> 普通 <input type="radio" name="g1" value="3"> 不同意 <input type="radio" name="g1" value="2"> 稍微不同意 <input type="radio" name="g1" value="1"> 非常不同意 </td> </tr> <tr> <td> 問項二。 </td> <td><input type="radio" name="g2" value="7" > 非常同意 <input type="radio" name="g2" value="6"> 稍微同意 <input type="radio" name="g2" value="5"> 同意 <input type="radio" name="g2" value="4"> 普通 <input type="radio" name="g2" value="3"> 不同意 <input type="radio" name="g2" value="2"> 稍微不同意 <input type="radio" name="g2" value="1"> 非常不同意 </td> </tr> </table> <br> <div align="center"> <input type="button" value="下一頁" onClick='submitcheck(5)'> </div> </form> </body> </html> -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.6.225 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1456113066.A.243.html ※ 編輯: mikevada (114.34.6.225), 02/22/2016 11:54:27

02/22 12:20, , 1F
g1[]裡面給數字,len是文字,g1[1]表示取g1內第2個物件
02/22 12:20, 1F
我知道,但問題就是g1如何用變數去代替? ※ 編輯: mikevada (114.34.6.225), 02/22/2016 12:46:47

02/22 13:23, , 2F
你要取得表單上所有checkbox?
02/22 13:23, 2F

02/22 13:31, , 3F
eval()
02/22 13:31, 3F

02/22 13:56, , 4F
請問html部份可以提供 看看嗎?
02/22 13:56, 4F

02/22 14:53, , 5F
你上一篇文章裡我推的方法能用嗎? 還是要各別判斷?
02/22 14:53, 5F
不好意思,jquery不會用....,想單純用js解決 ※ 編輯: mikevada (114.34.6.225), 02/22/2016 15:17:53 ※ 編輯: mikevada (114.34.6.225), 02/22/2016 15:19:18 ※ 編輯: mikevada (114.34.6.225), 02/22/2016 15:20:12

02/22 16:17, , 6F
document.myform[len][i].checked
02/22 16:17, 6F

02/22 16:45, , 7F
len已經被你宣告成一個字串了怎麼再變成陣列?
02/22 16:45, 7F

02/22 21:18, , 8F
你可以google eval()的用法 應該是你想要的
02/22 21:18, 8F

02/23 10:00, , 9F
我看懂你的問題了,因為document.myform.xxx是要form
02/23 10:00, 9F

02/23 10:01, , 10F
底下的控制項,你這樣接變數當然不能用吧@@
02/23 10:01, 10F

02/23 10:20, , 11F
可以的話你把RADIO每個都加上id,再用getElementsByID
02/23 10:20, 11F

02/23 10:21, , 12F
抓出來,大概就能用一個迴圈去抓n的問項的RADIO
02/23 10:21, 12F

02/23 10:21, , 13F
但還是建議你試著用JQUERY看看~
02/23 10:21, 13F

02/23 10:58, , 14F
寫在CodePen的範例看看吧 http://goo.gl/tHJHAq
02/23 10:58, 14F

02/24 14:40, , 15F
jQuery 不難,這年頭算必學,寫什麼都簡單很多
02/24 14:40, 15F

02/24 14:46, , 16F
myform.g1 可以用 myform["g1"] 取得
02/24 14:46, 16F

02/24 14:49, , 17F
1.num參數未傳入也沒必要傳入,應用js查數量
02/24 14:49, 17F

02/24 14:51, , 18F
2 if(check) 應該放在迴圈外
02/24 14:51, 18F

02/24 14:53, , 19F
for(var j=1;j<=2;j++){
02/24 14:53, 19F

02/24 14:54, , 20F
var checks = document.myform["g"+j];
02/24 14:54, 20F

02/24 14:55, , 21F
for(var i=0;i<checks.length;i++){
02/24 14:55, 21F
文章代碼(AID): #1MoeMg93 (Web_Design)
文章代碼(AID): #1MoeMg93 (Web_Design)