性格いい人が優勝

はじめまして
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を取得してあげるとか出来そうな気がしたのですが失敗しました…
よろしくお願いします!!

A 回答 (2件)

for(var i=0,elms=document.getElementsByName('type');i<elms.length

ms[i].checked) return elms[i].value

この回答への補足

回答ありがとうございます。
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+'を削除しますがよろしいですか?')
}

補足日時:2008/10/07 11:33
    • good
    • 0
この回答へのお礼

すみません、自己解決しました。
サーバー側の不調だったようです。
上の形で無事取得できました、本当にありがとうございます!!

お礼日時:2008/10/07 12:32

めんどうであればグローバル変数で・・・



<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>
    • good
    • 0
この回答へのお礼

なるほど onclickイベントでグローバル変数を使うという手もあるんですね。勉強になりました。
ありがとうございます!

お礼日時:2008/10/07 12:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!