![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
| 1 | 2 | 3 | 4 | 5
--+--+--+--+--+---
A | | ■|■ | |
--+--+--+--+--+---
B | | | ■|■ |
--+--+--+--+--+---
C | | | | |
--+--+--+--+--+---
D | ■|■ | | |
--+--+--+--+--+---
E | | | ■|■ |
--+--+--+--+--+---
縦横5ずつのチェックボックスがあったとして、
そのチェックが最低1ヶ所は重なって連続しているかどうか
(上記の図だと
「A-2,3とBの3,4」か「A-2,3とEの3,4」か
「A-2,3とDの1,2」か「Bの3,4とEの3,4」か
「Dの1,2とA-2,3と、Bの3,4またはEの3,4」
がチェックされていたらOK、
「Dの1,2とBの3,4」か「Dの1,2とEの3,4」
がチェックされていたらダメ)
を調べたいのですが、どうして良いかわかりません。
縦の列が何コマチェックされたか調べてみるとか
色々やってみたのですがどうにも上手くいきません。
要領を得ない質問ですみません。
こうやればいいんじゃない?
というヒントだけでも結構です。
よろしくお願いいたします!
No.2ベストアンサー
- 回答日時:
<html>
<head>
<script language="javascript">
<!--
var h = 4;// チェックボックスの列数-1
var v = 5;// チェックボックスの行数
var n = 0;
var m = 0;
var x = 0;
var y = 0;
function chk(){
var c = new Array();
var k = 0;
for(i=0; v>i; i++){
for(j=0; h>j; j++){
n = Math.floor(5 * i + j);
m = n + 1;
if((document.f.elements[n].checked)&&(document.f.elements[m].checked)){
c[k] = n;
k = k + 1;
}
}
}
for(l=0; c.length>l; l++){
x = c[l];
for(o=0; c.length>o; o++){
y = c[o];
if((y==x+6)||(y==x+11)||(y==x+16)||(y==x+21)||(y==x-4)||(y==x-9)||(y==x-14)||(y==x-19)){
alert("hit: " + x + " \& " + y);
}
}
}
}
//-->
</script>
</head>
<body>
<form name="f" id="f">
<table border="1">
<tr>
<td>
<input type="checkbox" name="0" id="0"><br>
0
</td>
<td>
<input type="checkbox" name="1" id="1"><br>
1
</td>
<td>
<input type="checkbox" name="2" id="2"><br>
2
</td>
<td>
<input type="checkbox" name="3" id="3"><br>
3
</td>
<td>
<input type="checkbox" name="4" id="4"><br>
4
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="5" id="5"><br>
5
</td>
<td>
<input type="checkbox" name="6" id="6"><br>
6
</td>
<td>
<input type="checkbox" name="7" id="7"><br>
7
</td>
<td>
<input type="checkbox" name="8" id="8"><br>
8
</td>
<td>
<input type="checkbox" name="9" id="9"><br>
9
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="10" id="10"><br>
10
</td>
<td>
<input type="checkbox" name="11" id="11"><br>
11
</td>
<td>
<input type="checkbox" name="12" id="12"><br>
12
</td>
<td>
<input type="checkbox" name="13" id="13"><br>
13
</td>
<td>
<input type="checkbox" name="14" id="14"><br>
14
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="15" id="15"><br>
15
</td>
<td>
<input type="checkbox" name="16" id="16"><br>
16
</td>
<td>
<input type="checkbox" name="17" id="17"><br>
17
</td>
<td>
<input type="checkbox" name="18" id="18"><br>
18
</td>
<td>
<input type="checkbox" name="19" id="19"><br>
19
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="20" id="20"><br>
20
</td>
<td>
<input type="checkbox" name="21" id="21"><br>
21
</td>
<td>
<input type="checkbox" name="22" id="22"><br>
22
</td>
<td>
<input type="checkbox" name="23" id="23"><br>
23
</td>
<td>
<input type="checkbox" name="24" id="24"><br>
24
</td>
</tr>
</table>
<hr>
<input type="button" onClick="chk();" value="Check !">
</form>
</body>
</html>
No.1
- 回答日時:
下のスクリプトで5x5のチェックボックスがチェックされているかどうかの真偽値が配列に入れられます。
この後if文で処理を書いたらいいでしょう。
算数が苦手な上、根性が無いのでそこまで作れませんでした。
ためにならない答えですみません。
<html>
<head>
<title>チェックボックスのチェックのチェック</title>
<script type="text/javascript"><!--
function myCheck(){
checks=new Array();
checks.push(document.myform1.a1.checked);
checks.push(document.myform1.a2.checked);
checks.push(document.myform1.a3.checked);
checks.push(document.myform1.a4.checked);
checks.push(document.myform1.a5.checked);
checks.push(document.myform1.b1.checked);
checks.push(document.myform1.b2.checked);
checks.push(document.myform1.b3.checked);
checks.push(document.myform1.b4.checked);
checks.push(document.myform1.b5.checked);
checks.push(document.myform1.c1.checked);
checks.push(document.myform1.c2.checked);
checks.push(document.myform1.c3.checked);
checks.push(document.myform1.c4.checked);
checks.push(document.myform1.c5.checked);
checks.push(document.myform1.d1.checked);
checks.push(document.myform1.d2.checked);
checks.push(document.myform1.d3.checked);
checks.push(document.myform1.d4.checked);
checks.push(document.myform1.d5.checked);
checks.push(document.myform1.e1.checked);
checks.push(document.myform1.e2.checked);
checks.push(document.myform1.e3.checked);
checks.push(document.myform1.e4.checked);
checks.push(document.myform1.e5.checked);
/*
配列内インデックス
|1|2|3|4|5|
--+--+--+--+--+--+
A|0|1|2|3|4|
--+--+--+--+--+--+
B|5|6|7|8|9|
--+--+--+--+--+--+
C|10|11|12|13|14|
--+--+--+--+--+--+
D|15|16|17|18|19|
--+--+--+--+--+--+
E|20|21|22|23|24|
--+--+--+--+--+--+
*/
}
//--></script>
</head>
<body>
<form action="#" name=myform1>
<table border=1>
<tr><th></th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th></tr>
<tr><th>A</th><td><input type=checkbox name=a1></td><td><input type=checkbox name=a2></td><td><input type=checkbox name=a3></td><td><input type=checkbox name=a4></td><td><input type=checkbox name=a5></td></tr>
<tr><th>B</th><td><input type=checkbox name=b1></td><td><input type=checkbox name=b2></td><td><input type=checkbox name=b3></td><td><input type=checkbox name=b4></td><td><input type=checkbox name=b5></td></tr>
<tr><th>C</th><td><input type=checkbox name=c1></td><td><input type=checkbox name=c2></td><td><input type=checkbox name=c3></td><td><input type=checkbox name=c4></td><td><input type=checkbox name=c5></td></tr>
<tr><th>D</th><td><input type=checkbox name=d1></td><td><input type=checkbox name=d2></td><td><input type=checkbox name=d3></td><td><input type=checkbox name=d4></td><td><input type=checkbox name=d5></td></tr>
<tr><th>E</th><td><input type=checkbox name=e1></td><td><input type=checkbox name=e2></td><td><input type=checkbox name=e3></td><td><input type=checkbox name=e4></td><td><input type=checkbox name=e5></td></tr>
<tr><td colspan=6 align=center><input type=button value=" Check " onClick="myCheck()"></td></tr>
</table>
</form>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- YouTube どちらにチェックを? 1 2022/09/20 10:47
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- CPU・メモリ・マザーボード 「コンピューターのメモリが不足しています」 3 2022/12/15 22:07
- デスクトップパソコン レガシモードからUEFIモードにするソフトは 7 2022/09/16 14:39
- 工学 日本のロケット打ち上げ失敗 9 2023/03/08 09:51
- 電子レンジ・オーブン・トースター アース配線の有効性について 2 2022/06/23 13:20
- その他(法律) 親戚が家宅捜査されました、逮捕されずに検察から連絡待ちです、違法捜査でした 0.親戚の押収品のスマホ 14 2023/05/02 01:05
- 会社・職場 確認をダブルチェック化すると注意力が下がる気がするんですがいかがでしょうか? 8 2022/09/12 06:19
- 会社・職場 パート2ヶ月目です。 業種は伏せますが二重チェック、やり直しがある仕事です。 結構やり直しで戻ってく 3 2023/07/27 17:58
- 新年・正月・大晦日 正月三が日は、最寄りのお店は休みですか? それとも2日からやるところが多いですか? 5 2022/12/27 17:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptの「.querySelectorA...
-
同一nameの input type="text"...
-
画面表示とともにtableの指定の...
-
入力チェックの外部スクリプト...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
javascriptでhiddenに二次元配...
-
formのfileの値をhiddenでも持...
-
javascriptでクイズ
-
【UWSC】HTML内のある部分を抽...
-
javascriptでセレクトボックス...
-
特定<table>内の<td>の色を変える
-
追加ボタンを押した際に ok ボ...
-
innerHTML内では改行は禁止?
-
submitした値を返したい
-
ファイル選択ダイアログが表示...
-
JavaScriptde途中で、「exit」...
-
1つのform内に2つのsubmitボタ...
-
value内に変数を入れたい
-
一覧から選択した行の行番号を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
複数のselect値で1つも選択され...
-
画面表示とともにtableの指定の...
-
localStorageでのcheckbox制御
-
文字数を数える際に空白、改行...
-
JavaScriptの「.querySelectorA...
-
Javascriptの電卓で最初の何も...
-
formで項目を連結したい
-
ラジオボタンが選択されたらテ...
-
javascriptで表(テーブル)の自...
-
横へスクロール
-
テーブル内のチェックボックス...
-
history.backの前に値をクリア...
-
java scriptで問題集を作りたい...
-
送信ボタン連打を抑止したいです
-
Java Scriptで・・・
-
フォームタグの中のラジオボタ...
-
【緊急】リアルタイムでエラー...
-
jQuery テキストボックス読み取...
-
JavaScriptを使って九九の表を...
おすすめ情報