ラジオボタンについて

[新着] Webテンプレートを仮オープンしました



0   名前: おら信長 : 2006/09/30(土) 00:44  ID:ZSXJwoRs
【何をしたいのか】
ラジオボタン(排他制御)で同じグループ名が4つでそれが50個あるのですが・・・
         値 : 1 / 2 / 3 / 4
1行目のラジオボタン名:R101/R101/R101/R101
2行目のラジオボタン名:R102/R102/R102/R102
3行目のラジオボタン名:R103/R103/R103/R103

50行目のラジオボタン :R150/R150/R150/R150

For文などで引数をとって未入力のチェックをしてみたい。

【現在の状況】

R101(1)〜R101(4)をFOR文で行えたのですが・・・
次のR102(1)へ移行させていく時、引数のとり方がわからず困っています。

【何をしてみたのか】

ラジオボタンのグループごとの値を「1342111311212231〜1」と50個データをテキストへ表示したい。
未入力があればメッセージを表示したい。

【備考】
下記のアドレスとみてやってはいるのですが・・・・^^;
http://mdstoy.vis.ne.jp/tips/web/html/input.html

1   名前: tk : 2006/09/30(土) 00:44  ID:jk7JZM2Y
こんな感じでしょうか。取合えずウチのfirefoxではちゃんと動きます。。。。
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="Content-script-Type" content="text/javascript"> 
	<script type="text/javascript">
	<!--
	function func1() {
		var len = document.forms[0].r101.length;
		var str="";
		for(var i=0; i<3; i++){
			for (var j=0;j<len;j++) {
				var c = (i*len)+j;
				if(document.forms[0].elements[c].checked){
					str += document.forms[0].elements[c].value;
				}
			}
		}
		alert(str);
		return;
	}
	-->
	</script>
</head>
<body>
	<form>
		<p>
			<input type="radio" name="r101" value="1">1
			<input type="radio" name="r101" value="2">2
			<input type="radio" name="r101" value="3">3
			<input type="radio" name="r101" value="4">4
		</p>
		<p>
			<input type="radio" name="r102" value="1">1
			<input type="radio" name="r102" value="2">2
			<input type="radio" name="r102" value="3">3
			<input type="radio" name="r102" value="4">4
		</p>
		<p>
			<input type="radio" name="r103" value="1">1
			<input type="radio" name="r103" value="2">2
			<input type="radio" name="r103" value="3">3
			<input type="radio" name="r103" value="4">4
		</p>
		<p>
			<input type="button" name="button1" value="button" onclick="func1();">
		</p>
	</form>
</body>
</html>

2   名前: おら信長 : 2006/09/30(土) 00:44  ID:uoKnRzyu
ありがとうございます。
簡単で短いプログラムできますね。

あと、付け加えて下記はファンクションの部分でボタンが押されなかった場合
メッセージを表示させるものを作成しました。
あと、未記入の場所へフォーカスを移動させる方法があれば
教えてください。

function func1() {
var row = 4;
         var Column = 3;
var str="";
var cnt=0;
var flg=0;

for(i=0; i<Column; i++){
for (j=0;j<row;j++) {
var c = (i*len)+j;
if(document.forms[0].elements[c].checked){
str += document.forms[0].elements[c].value;
flg=(3-j);
cnt=0;
}else{
cnt=(cnt+1);
if(cnt == (flg+4)){
alert("NO."+(i+1)+"が未記入です。");
return;
}
}
}
}
alert(str);
return;
}

3   名前: SS : 2006/09/30(土) 00:44  ID:rj6h.TpS
>>1
コード云々でなくて申し訳ありません。
全角入れてコードを提示するのはやめてくれませんか。整形のためなら、全く馬鹿げています。動かしてみようと思ったのですが、全角削除で根が尽き、諦めました。

他の方にもお願いします。

4   名前: tk : 2006/09/30(土) 00:44  ID:1rZ6q2Ss
>>3
馬鹿げていると言われてもねぇ。全角スペースなんか使っていないはずなんですが。ブラウザで動作確認した物を貼付けただけですし。こっちだって全角使ったら動きませんし。
投稿した時に文字が化けたのでしょうか。
何故でしょうね?


5   名前: m035 ◆Wpzr1YKOiq : 2006/09/30(土) 00:44  [URL]  ID:JHAU/5e3
>>2
提示されたfunc1()は動作しません。
var len = document.forms[0].r101.length;
を関数のはじめに入れておくとよろしいかと。
(固定値なので直接 len=4 のようにしてもいいでしょう)
未選択部分にフォーカスを当てたいのなら
document.forms[0].elements[i*len].focus();

alert("NO."+(i+1)+"が未記入です。");
の後に追加すれば出来ます。

>>3
全角とはスペースやタブのことでしょうか?
空白はあっても問題なく検証できるのでたいした問題ではないかと思います。
JavaScriptに関してはある程度インデントがあったほうが見やすいです。
HTMLでは全角スペースによるインデントが無駄な空白となる場合があるので要注意ですが、今回はタブですから問題はないかと。

と、言いますか>>1の投稿に全角文字は無いと思うのですが・・・
あったとしても動作すれば目的は果たしていると私は考えます。

6   名前: 牛若 : 2006/09/30(土) 00:44  ID:2MLrdjYd
>>1.

0)
このコードをメモ帳にコピペすると、グチャグチャになる。
これによって、コメントアウトによる不都合の発生や殊に「;」が落ちている場合には
コードとして致命的になる。TABによる整形は不要。半角スペースで充分。

1)
var len = document.forms[0].r101.length;

var len = document.forms[0].elements['r101'].length;
と書くべき

2)
onclick="func1();"
「;」は不要

3)
--> </script>
TAB不要。「-->」は間違い。「//-->」

4)
提示されたコードは動かないし、。

5)
str += document.forms[0].elements[c].value;
は単なる連結であり、期待されている結果と異なる。

7   名前: m035 ◆Wpzr1YKOiq : 2006/09/30(土) 00:44  [URL]  ID:JHAU/5e3
>>6
>0)
>このコードをメモ帳にコピペすると、グチャグチャになる。
http://www.tagindex.com/cgi-lib/bbs/patio.cgi?mode=view2&f=165&no=29
を見れば納得できるかと。
事実、私はFireFoxでしたので、改行は有効でした。
インデントに関しては個人の判断ですので、タブ、全角・半角スペース何を使っても良いかと。
多分、半角だろうと改行が無効だと厳しいでしょうし、今回は仕方ないかと。

>5)
>str += document.forms[0].elements[c].value;
>は単なる連結であり、期待されている結果と異なる。
そうでしょうか。
>>0で
>ラジオボタンのグループごとの値を「1342111311212231〜1」と50個データをテキストへ表示したい。
と、質問されているのでおそらく文字列として連結していいのでは?
また、>>2での様子から質問者はこの動作に満足しているとも思うのですが。

8   名前: 牛若 : 2006/09/30(土) 00:44  ID:RSX/2nPa
>>7
>>str += document.forms[0].elements[c].value;
>>は単なる連結であり、期待されている結果と異なる。

>そうでしょうか。

失礼しました。他の問題と錯誤してました。
勘違いです。すいません。

9   名前: 牛若 : 2006/09/30(土) 00:44  ID:RSX/2nPa
言い忘れ。
>>7
>インデントに関しては個人の判断ですので、タブ、全角・半角スペース何を
>使っても良いかと。

これはハッキリ断る。迷惑以外の何ものでもない。
>>2のように書いてくれれば、インデントなど不要。
もっといえば、大切なのは見易さの問題ではなく、スクリプトエンジンの
解釈に影響のあるような書き方。
全角などは論外。

10   名前: おら信長 : 2006/09/30(土) 00:44  ID:uoKnRzyu
みなさん。いろいろありがとうございます。

でも、質問者は私なので、回答はほとんどあってます。

2度目に聞きかかったことは、

>document.forms[0].elements[i*len].focus();を
>alert("NO."+(i+1)+"が未記入です。");
>の後に追加すれば出来ます。

で解決していますのでそれ以外でもめられても

はっきりいってわからないです^^;

以上で解決したのでいろいろありがとうございました。

11   名前: m035 ◆Wpzr1YKOiq : 2006/09/30(土) 00:44  [URL]  ID:JHAU/5e3
>>9
http://www.tagindex.com/cgi-lib/bbs/patio.cgi?mode=view&no=146
続きはスレッド脱線用スレッドに書きます。

12   名前: 牛若 : 2006/09/30(土) 00:44  ID:wGPLLacE
>>11
続きも何も、こんなくだらない問題で議論するつもりはない。
他の板に誘導するほどのことでもないでしょ。
あなたは自分のFFでなんともないので、

(>>7)
>インデントに関しては個人の判断ですので、タブ、全角・半角スペース何を
>使っても良いかと。

と主張しているのでは(今後この板で修正があるにしても)?
ともかく、全角など入れてコードを書かれては困る。
これ、わかりませんか?

13   名前: カヅサツ ◆ThCi95HEzw : 2006/09/30(土) 00:44  [URL]  ID:O5hEMlpW
http://www.tagindex.com/bbs/note.html
> 質問内容とはあまり関係のない議論に発展してしまった場合、または発展しそうな場合には、雑談ルームへの移動をお願いいたします。

インデント論云々については「質問内容とはあまり関係のない議論」と考えますので、これ以上「このスレッドで」続けないことを提案します。

14   名前: えじ ◆HtEaXt.II9 : 2006/09/30(土) 00:44  ID:WP1ytrfY
>>7 でもリンクされてますが、
ソース貼り付けエリア内のコードをコピペした場合、一部の環境では改行が入らないという不具合(作成時のミス)がありました。誤解を招いてしまってすいません。

このスレッドのおかげで不具合に気付くことができました(どこに全角が入ってるのだろう?とコピペしてみて気付きました)。ありがとうございました。

15   名前: わらじ : 2006/09/30(土) 00:44  ID:jfJVtvh8
メールフォームで、複数のラジオボタンやチェックボタンの項目を必須項目にしたいのですが、スクリプトでもcgiでもけっこうですので、どの用のように記述すればよいか教えて頂ければ幸いです。

16   名前: カヅサツ ◆ThCi95HEzw : 2006/09/30(土) 00:44  [URL]  ID:O5hEMlpW
>>15
それは、おら信長さんの質問に関係があるのでしょうか?

17   名前: わらじ : 2006/09/30(土) 00:44  ID:9OkK/QCZ
おら信長さんの質問と若干重なっていたようでした。もう少し考えてからまた、質問するかもしれませんので、その時は、よろしくお願いします。

18   名前: カヅサツ ◆ThCi95HEzw : 2006/09/30(土) 00:44  [URL]  ID:O5hEMlpW
> おら信長さんの質問と若干重なっていたようでした。

若干?

19   名前: m035 ◆Wpzr1YKOiq : 2006/09/30(土) 00:44  [URL]  ID:S4p.21sn
>>17
既存スレッドの流用は混乱を招くので、別スレッドを立てましょう。
関係があると思ったときはこのスレッドのurlを質問時に提示してみるとよろしいかと。

20   名前: キハラ : 2006/09/30(土) 00:44  ID:3Cp/KyUW
ラジオボタンでチェックボックスに、チェックするには、どうしたらいいですか?
教えてください。

21   名前: 匿名 : 2006/09/30(土) 00:44  ID:3qK6BuTd
>>20へ
>>19を読みなさい。

一覧へ戻る