Java、JSPを使用しております。
ラジオボタンが複数あり、
どれか一つでもチェックされたらsubmitを無効化させたいと考えています。
ですので、※チェックがされていない状態ではsubmitは表示して欲しい※のです。
どなたかご教授お願いいたします。
サーブレット
中略・・・
if(al1 != null && al1.size() >= 1)
{
out.println("<script type=\"text/javascript\" src=\"../Script/util.js\" charset=\"UTF-8\"></script>");
out.println("<meta http-equiv=\"Content-Script-Type\" content=\"text/javascript;\">");
out.println("<form action=\"WorkManagement.ProjectManagement\" method=\"post\" name=\"form1\">");
out.println("<table border=\"1\">");
中略・・・
for (ProjectManagementBean pm : al1)
{
out.println("<tr>");
out.println("<td>");
out.println("<input type=\"radio\" name=\"radio\" value=\"" + pm.getProjectID() + "\" onClick=\"rendou(this)\" />");
out.println("</td>");
中略・・・
JSP------------------------------------------------------
中略・・・
<input type="submit" name="register" value="登録" onClick="return proRegister()" />
中略・・・
.
No.4ベストアンサー
- 回答日時:
>コメント
<script>
try{
document.addEventListener('click',function(e){func(e)},true);
//オブジェクトにクリック時の処理をつける
}catch(e){
document.attachEvent('onclick',function(e){func(e)});
//IE用(IEは思想が違うため)
}
window.onload=function(){
//初期値設定をする。window.onloadで処理するというのは文書が
読み込まれてから処理するということ
check(document.getElementById("f"));
//form:fにたいしてチェック処理をしている
}
function func(e){
var t = (e.srcElement || e.target);
//イベントハンドラからオブジェクトを確定
if(t.nodeName=="INPUT") check(t.form);
//INPUTタグに対して(この場合クリックされたら)checkを発動
}
function check(f){
var flg=false;
var r=new Object();
for(var i=0;i<f.length;i++){
if(f[i].type=="radio") r[f[i].name]=(r[f[i].name] || f[i].checked);
//同じ名前のラジオボタンを探して、チェックがはいっているかどうかしらべる(1つでもチェックが入っていればtrue)
}
for(var i in r){
if(!r[i]){ flg=true; break; }
//ラジオボタンの内容をチェックする、一個でもチェックがないものがあればdisabledのflgをtrueにする
}
for(var i=0;i<f.length;i++){
if(f[i].type=="submit") f[i].disabled=flg;
//サブミットボタンをしらべてdisabledを設定
}
return flg;
//おまじない、今回はつかっていない
}
</script>
yambejp様
お礼が遅くなってしまって申し訳ございません。
ありがとうございました。
ぜひ参考にさせていただきたいと思います。
No.3
- 回答日時:
サーブレットの部分は切り分けましょう。
今回の件はユーザーのアクションによる属性の変更ですから
あくまでもクライアントサイドのjavascriptです
以下のような感じでわかりますか?
<script>
try{
document.addEventListener('click',function(e){func(e)},true);
}catch(e){
document.attachEvent('onclick',function(e){func(e)});
}
window.onload=function(){
check(document.getElementById("f"));
}
function func(e){
var t = (e.srcElement || e.target);
if(t.nodeName=="INPUT") check(t.form);
}
function check(f){
var flg=false;
var r=new Object();
for(var i=0;i<f.length;i++){
if(f[i].type=="radio") r[f[i].name]=(r[f[i].name] || f[i].checked);
}
for(var i in r){
if(!r[i]){ flg=true; break; }
}
for(var i=0;i<f.length;i++){
if(f[i].type=="submit") f[i].disabled=flg;
}
return flg;
}
</script>
<form id="f">
<input type="radio" name="r1" value="1">r1-1
<input type="radio" name="r1" value="2">r1-2
<input type="radio" name="r1" value="3">r1-3
<input type="radio" name="r2" value="1">r2-1
<input type="radio" name="r2" value="2">r2-2
<input type="radio" name="r2" value="3">r2-3
<input type="submit" value="send1">
<input type="submit" value="send2">
<input type="submit" value="send3">
</form>
この回答への補足
yambejp様
ご回答ありがとうございました。
もしお時間がございましたら、コメントといいますか、言葉で説明をいただけるととてもありがたいです。
不明な点がございますので、お聞きしてもよろしいでしょうか?
onClick="~"はいらないのでしょうか?
window.onload=function() これでイベントハンドラのような役割ですか?
調べてみたのですが、
コードが実行されているときには まだ記述されている部分がロードされていない可能性があり、 その場合エラーとなるため。
と記載してあったので、また別物なのかなと考えたのですが・・・。
ご指導よろしくおねがいします。
No.2
- 回答日時:
全体像が不明ですが、こんな感じ?
submitボタンはformの一番最後にあるものと仮定。また、name="radio"は該当のラジオボタン以外には使用されていないと仮定しています。
(resetボタンがある場合は、操作時にdesabledをfalseにする必要あり。)
<html>
<head><title>test</title>
<script type="text/javascript">
function rendou(evt, f) {
var e = f.elements, t = evt.target || evt.srcElement;
if (t.name=='radio') e[e.length-1].disabled = true;
}
</script>
</head>
<body>
<form action="#" method="post" onclick="rendou(event, this)">
<input type="radio" name="radio" value="a" >a
<input type="radio" name="radio" value="b" >b
<input type="radio" name="radio" value="c" >c
・・・・・・・・・
<input type="submit" name="register" value="登録">
</form>
</body>
</html>
この回答への補足
fujillin様
説明不足なところが多々ありまして、申し訳ございません。
質問にも記載しておりますが、登録のsubmitはサーブレット上ではなく、※jsp上※に配置しております。
★JSP★
名前 : <input type="text" name="name" value="" />
TEL : <input type="text" name="tel" value="" />
<input type="submit" name="register" value="登録" onClick="return proRegister()" />
<input type="submit" name="change" value="変更" onClick="return Change()" />
<input type="submit" name="delete" value="削除" onClick="return Delete()" />
中略・・・
<h2>◆検索結果◆</h2>
<!-- 全件出力 -->
<jsp:include page="/servlet/Out.outProject" flush="true" />
------------------------------------------------------
このOut.outProjectが、質問に記載したサーブレットです。
また、
rendou()は、jsp上に登録submit以外に、変更・削除submitがあるので、その際に予め設定されているIDをgetParameterするために使っております。
ラジオボタンにどれか一つチェックをすると、
そのIDを取得し、登録された名前やTELがテキストボックスに反映されるようになっております。
このような説明で大丈夫でしょうか・・・
説明が下手ですみません。
何卒よろしくおねがいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンのvalueとlabelの...
-
javascript作成してます。ラジ...
-
リセットボタンでクリアできな...
-
ラジオボタンとif文
-
ラジオボタンにタブインデック...
-
ラジオボタンでdisabledとchecked
-
ラジオボタンでチェックした項...
-
ラジオボタンの値でリンク先を...
-
return trueとreturn falseの用...
-
プルダウンで選択すると、DBの...
-
onClickとsubmitの処理順序
-
条件により、リンク先に画面遷...
-
ボタンを押すとチェックボック...
-
【jQuery】input nameの文字列...
-
Selectの中身をfor文で入れる
-
確認ダイアログの出し方(JavaS...
-
1つのform内に2つのsubmitボタ...
-
VB.NET DateTimeの型について
-
<input>の選択肢をプルダウンメ...
-
チェックボックスのON/OFFに応...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ラジオボタンにタブインデック...
-
ラジオボタンでチェックした項...
-
フォームPOST後「戻る」時のチ...
-
ラジオボタンのチェックが外れ...
-
データベースの値を判断してラ...
-
javascript作成してます。ラジ...
-
ラジオボタンを使って、検索ペ...
-
ラジオボタンでdisabledとchecked
-
チェックされたラジオボタンに...
-
ラジオボタンにチェックを入れ...
-
(jQuery)ラジオボタン選択値を...
-
クイズの正解(○×)をテキスト...
-
radio選択をクッキーに保存させ...
-
jsでラジオボタンによって表示...
-
ボタンの無効化
-
ラジオボタンで入力フィールド...
-
Jvasvriptのlengthで個数が取得...
-
ポップアップウインドウで選択...
-
ラジオボタンでの動的項目の変...
-
VBA IE ラジオボタンに...
おすすめ情報
