![]() |
| カレッヂ |
質問者 花
投稿日 2005/4/12(火) 20:51:21
<input type="radio" value="A" name="A"> <input type="radio" value="B" name="B"> <input type>の属性の違うこのラジオボタン同士の組み合わせを選ぶと エラー表示ができるようにしたいのですが、誰か、教えていただけませんでしょうか?
【習熟度】多少の改造ができる |
回答者 sim
[削除]
投稿日 2005/4/14(木) 10:15:38
AとBのどちらのチェックがついてると困る場合
<input type="radio" value="A" name="A" onclick="if(this.form.B.checked){alert('Bにチェックついてるよ');}">
<input type="radio" value="B" name="B" onclick="if(this.form.A.checked){alert('Aにチェックついてるよ');}">
さらにチェックを禁止したい場合
<input type="radio" value="A" name="A" onclick="if(this.form.B.checked){alert('Bにチェックついてるよ');this.checked=false;}">
<input type="radio" value="B" name="B" onclick="if(this.form.A.checked){alert('Aにチェックついてるよ');tihs.checked=false;}">
こんなのでいいんでしょうか? |
質問者 花
[削除]
投稿日 2005/4/14(木) 12:26:15
回答者様へ 早々に回答いただきありがとうございます。 説明不足だったかもしれませんので、今一度質問させてください。 属性A-1<input type="radio" value="A" name="a">← 属性A-2<input type="radio" value="A" name="b"> 属性A-3<input type="radio" value="A" name="c"> 属性B-1<input type="radio" value="B" name="α"> 属性B-2<input type="radio" value="B" name="β">← 属性B-3<<input type="radio" value="B" name="γ"> この場合、 属性A-1と属性B-2のラジオボタンを同時に選択したときにalertメッセージを登場させたいのです。 なにとぞ、回答いただけますようよろしくお願いいたします。 |
回答者 sim
[削除]
投稿日 2005/4/14(木) 12:57:13
すいません。私はどうも人の説明の意図を読み取るのが苦手でして。
行いたい動作は下記でよいでしょうか?
1.属性Aと属性Bのグループがある
2.属性Aのaを選択時、属性Bはαしか選択できない
属性Aのbを選択時、属性Bはβしか選択できない
属性Aのcを選択時、属性Bはγしか選択できない
それとも下記でしょうか?
1.属性Aと属性Bのグループがある
2.属性Aのグループ、属性Bのグループから一つだけ選択することが出来る
上記の場合は先ほどのレスの応用で出来るかと思います。
下記の場合は下のようなものではいかがでしょうか?
<form>
<input type="radio" value="A" name="A" onclick="for(i=0;i<this.form.B.length;i++){if(this.form.B[i].checked){alert('同時に選択できません。');this.form.B[i].checked=false;}}">
<input type="radio" value="B" name="A" onclick="for(i=0;i<this.form.B.length;i++){if(this.form.B[i].checked){alert('同時に選択できません。');this.form.B[i].checked=false;}}">
<input type="radio" value="C" name="A" onclick="for(i=0;i<this.form.B.length;i++){if(this.form.B[i].checked){alert('同時に選択できません。');this.form.B[i].checked=false;}}">
<input type="radio" value="α" name="B" onclick="for(i=0;i<this.form.A.length;i++){if(this.form.A[i].checked){alert('同時に選択できません。');this.form.A[i].checked=false;}}">
<input type="radio" value="β" name="B" onclick="for(i=0;i<this.form.A.length;i++){if(this.form.A[i].checked){alert('同時に選択できません。');this.form.A[i].checked=false;}}">
<input type="radio" value="γ" name="B" onclick="for(i=0;i<this.form.A.length;i++){if(this.form.A[i].checked){alert('同時に選択できません。');this.form.A[i].checked=false;}}">
</form> |
質問者 花
[削除]
投稿日 2005/4/14(木) 14:15:10
回答者様へ
重ね重ねご回答いただきありがとうございます。
希望していたのは・・・
属性A-1と属性B-2のラジオボタンを同時に選択したときに【のみ】alertメッセージを登場させたいのです。つまり、属性Aのaを選択時、属性Bはβを選択できないということでした。
そこで・・・
<form>
×と×の組み合わせでアラートメッセージ<br><br>
A群<br>
<input type="radio" value="A" name="A" onclick="for(i=0;i<this.form.B.length;i++){if(this.form.B[i].checked){alert('B群の×を同時に選択できません。');this.form.B[i].checked=false;}}">×
<input type="radio" value="B" name="A">○
<input type="radio" value="C" name="A">○
<br>
B群<br>
<input type="radio" value="α" name="B">○
<input type="radio" value="β" name="B" onclick="for(i=0;i<this.form.A.length;i++){if(this.form.A[i].checked){alert('A群の×を同時に選択できません。');this.form.A[i].checked=false;}}">×
<input type="radio" value="γ" name="B">○
</form>
このように必要と思われる記述だけを残しましたら、ほとんど、希望通りにアラート近づきました。
何度か試していると○と×の組み合わせなのにバグとしか思えないアラート表示が登場してしまうのが多少気になりました。これは仕方ないものなのでしょうか?もし改善策があれば、ご教唆ください。
いずれによよ、回答いただきありがとうございました。
心から感謝しております。 |
質問者 花
[削除]
投稿日 2005/4/14(木) 14:26:41
補足なのですが、 ×のついているラジオボタンを2番目に押すと アラートメッセージが登場してしまうようです。 どうか、お助け下さい。 |
回答者 sim
[削除]
投稿日 2005/4/14(木) 15:08:25
はい。では、下記のような状態でしょうか?
「name=A の valueがAの時に、name=BのvalueがBの場合は選択が出来ない」
<form>
<input type="radio" value="A" name="A" onclick="if(this.form.B[1].checked){alert('同時選択できません。');this.form.B[1].checked=false;}">
<input type="radio" value="B" name="A">
<input type="radio" value="C" name="A">
<input type="radio" value="α" name="B">
<input type="radio" value="β" name="B" onclick="if(this.form.A[0].checked){alert('同時選択できません。');this.form.A[0].checked=false;}">
<input type="radio" value="γ" name="B">
</form>
これでどうでしょう? |
質問者 花
[削除]
投稿日 2005/4/14(木) 15:46:25
心ある回答者様へ 上手くいきました。完璧です。 この掲示板と素晴らしい回答者に巡り会えましたことを、心から御礼申し上げます。 真にありがとうございました。 |
このページは終了したので返信(回答)は書きこめません
| Web裏技 |