電子書籍の厳選無料作品が豊富!

  | 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」
がチェックされていたらダメ)
を調べたいのですが、どうして良いかわかりません。
縦の列が何コマチェックされたか調べてみるとか
色々やってみたのですがどうにも上手くいきません。

要領を得ない質問ですみません。
こうやればいいんじゃない?
というヒントだけでも結構です。
よろしくお願いいたします!

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

回答していただいてありがとうございました!
おかげでとても参考になりました。
大変遅くなって申し訳ありませんm(_ _)m

お礼日時:2005/09/20 14:52

下のスクリプトで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>
    • good
    • 0
この回答へのお礼

回答していただいてありがとうございました!
おかげでとても参考になりました。
大変遅くなって申し訳ありませんm(_ _)m

お礼日時:2005/09/20 14:52

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