- ベストアンサー
javascriptで削除確認の画面に何を削除するかを表示させたい
はじめまして javascriptとJSPなどを使ってプログラミングをしています。 わかる方がいたら教えてください。 JSPで削除ボタンを押した時にjavascriptで「何が削除されるのか」の確認画面を出したいのですが、うまく表示されません。 データベースから取得した表の頭にラジオボタンでチェックをつけていますが、現在はどれを選んでも確認画面では表の一番先頭の名前(type)を表示してしまいます。 これは恐らく一番最初に見つけたtypeを持ってきてしまうからだと思うのですが、うまくどれを選んだのかわかるような関数表現を知りませんでしょうか! ------------------------------------- function showConfirm(){ return confirm(document.getElementById("type").value+'を削除しますがよろしいですか?'); } } ------------------------------------- <form name=test> <% for (int i = 0; i<test_bean.getListCount(); i++){ %> <input type="radio" name="type" value="<%=test_bean.getTypeAt(i) %>"> <br><%=test_bean.getTypeAt(i) %> <input type="submit" name="delete" value="削除ボタン" onclick="if(!showConfirm()) return false;"> ----------------------------------------------------- HTMLのソースでは下のように表示されます。 <input type="radio" name="type" value="A"><br>A <input type="radio" name="type" value="B"><br>B <input type="radio" name="type" value="C"><br>C 例えばfuctionの中でループでi個目のtypeを取得してあげるとか出来そうな気がしたのですが失敗しました… よろしくお願いします!!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
for(var i=0,elms=document.getElementsByName('type');i<elms.length;i++)if(elms[i].checked) return elms[i].value
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
めんどうであればグローバル変数で・・・ <script> delStr=""; function showConfirm(){ if(delStr==""){ alert("選択されてません") return false; } return confirm(delStr+'を削除しますがよろしいですか?'); } </script> <form name=test> <input type="radio" name="type" value="A" onclick="delStr='A'">A<br> <input type="radio" name="type" value="B" onclick="delStr='B'">B<br> <input type="radio" name="type" value="C" onclick="delStr='C'">C<br> <input type="submit" name="delete" value="削除ボタン" onclick="return showConfirm()"> </form>
お礼
なるほど onclickイベントでグローバル変数を使うという手もあるんですね。勉強になりました。 ありがとうございます!
お礼
すみません、自己解決しました。 サーバー側の不調だったようです。 上の形で無事取得できました、本当にありがとうございます!!
補足
回答ありがとうございます。 getElementsById()ではなく、getElementsByName()を使うということでしょうか? 下のようにshowConfirm()の中にfor文を入れてみたのですが、確認画面が表示されずに削除処理だけ実行されてしまいました。 おかしな点を指摘していただけると幸いです。 function showConfirm(){ for(var i=0,elms=document.getElementsByName('type');i<elms.length;i++) if(elms[i].checked) return confirm(elms[i].value+'を削除しますがよろしいですか?') }