例)

-----見積書-----
製品種別  ;■ 製品1 ■ 製品2

製品の大きさ;■ 大 ■ 中 ■ 小

見積額 ¥○○○○

---------------------------------------
(上述の■はチェックボックス)

「製品種別」・「製品の大きさ」をチェックすると見積金額が算出されるスクリプトはどのように書けばよいのでしょうか?教えてください。
チェックボックスを使った見積書をいろいろ探したのですが見つかりません。
当方の見積書には数量などは使用しませんのでif文での条件設定が良くわからないのです。是非教えてください。

A 回答 (1件)

ラジオボタンではなく、チェックボックスなのですか?


複数の製品が選択された場合、どのように処理するのでしょうか?

一応、ラジオボタンでサンプルを組んでみました。
tomori18さんのJavaScriptの技量が分かりませんので、自分のレベルで書いてしまいましたが、もし分からないようであれば書いて下さい。

サンプルは下記ページに置いてあります。
動きをみて、思うようであれば「ソースの表示」で確認して下さい。

なお、「見積もり」ボタンを押すと計算?されるようになっていますが、各ラジオボタンのタグに、
  onClick="calc();"
を入れれば、ラジオボタンをクリックしただけでも見積もりが表示されます。

参考URL:http://users.goo.ne.jp/leaz/mitsumori/

この回答への補足

leaz024さんへ

早速のご解答ありがとうございました。
初めての質問でしたので、要領を得ない内容を掲載してしましました。
恐縮ですが補足事項をご送信いたしまので、ご教示お願いいたします。
-----補足事項-----
1、複数商品が選択された場合とのご指摘について

この見積書はお客様がご持参頂いた御品(例えば中古車をイメージしてください。)について評価をするものです。したがって選択される商品は必ず一つになります。

2、ラジオボタン・チェックボックスの別について

是非双方入った見積書を教えてください。お願いします。

3、私のレベルについて

ほとんど初心者です。今一生懸命勉強しております・・・。

4、ラジオボタンをクリックしただけでも見積もりが表示される必要があるかとのご指摘。

教えて頂いたスクリプトで充分です。ありがとうございました。

本当に助かっております。

以上ご報告申し上げます。

補足日時:2001/08/20 11:18
    • good
    • 0

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qオススメの見積書のテンプレートを教えてください

こんにちは。
フリーランスでアートディレクターをやってます。
クライアントにスタジオ代やカメラマン、ヘアメイク、
スタイリストギャラ等の撮影費の見積もりを出す時
いつもイラストレータの手製のものでやってました。
今年から項目を細かく要求されるので、エクセルの
見積書の無料テンプレートを使おうと思ってます。
しかし色々ダウンロードしたのですが、エクセル初心者には
項目を書き直すだけでエラーのような表示になり苦戦してます。
できるだけシンプルな、項目をかいたら合計金額と消費税の計算だけ
できるようなものはないでしょうか。MACで作業できる
オススメのシンプル見積書を是非教えてください。
どうぞよろしくお願い致します。

Aベストアンサー

イラストレーターで表枠だけ作っていたということですか。
特殊なご職業で請求項目や項目数も様々でしょうからテンプレートでは
対応できないでしょう。
でもイラストレーターよりエクセルの方が楽だと思いますよ。
見積や請求のデータを保存して、流用したり集計したりもいずれ必要に
なってくるでしょう。その場合はデータベースソフトです。
一から始めることになりますが、見積書くらいすぐ作れますよ。(根気
と時間があるなら)

Qチェックボックスの取得数値で別のチェックボックスを選択可能に

こんにちは、初めて利用させていただきます。

Javascriptを利用し、下記URLのようなものを作成中です。
http://mag.morirepo.com/test_skill.html
それぞれのテーブルごとに段階を設け、「次の段階に進むためには2ポイント以上消費しなければチェックボックスが表示されない」といったものにしたいのですが、上手くスクリプト書けませんでした。

FirefoxとIEで動作させたいと思っています。
よろしくお願いします。

Aベストアンサー

(1)ご提示のソースの構成という条件で、<table>内の<input>要素は全て
  チェックボックスであると仮定し、そのチェックは省略しています。
(2)同じ段階の項目はinputのname属性が同じであるということを利用して  
  判定しています。 (なので、ご提示の「至近距離技能」のところは
  正しく動作しません。=全部同じnameになっている)
(3)ソースの「onClick="ttlValue()"」と「disabled」の設定は繰り返しが
  多いので、省略できるようにしました。
  下のサンプルのようにすることが可能です。
  (formに代表してonclickを設定しています。)
  (オンロード時に、非表示とdisabledをセットするようにしています)
(4)非表示にしてかつdisabledにするのかどうか不明でしたので(非表示
  だけでもことたりるのか)、一応、disabledにもにしていますが、不要
  ならばはずしてください。
  また、非表示にした時にチェックされている内容をクリアするのか
  どうかも不明でしたので、チェックはそのままです。クリアしたい
  場合は、コメントアウトしてある部分を有効にしてください。
(5)クリックされたらttlValue()が続いて実行されるようになっていますが、
  ttlValue()でやりたいことが良くわからなかったので、とりあえずダミー
  のfunctionになっています。 function ttlValue() を置き換えれば
  そのまま機能するはずです。
  最後の<select>の「onChange="ttlValue()"」は省略できませんので、
  そのまま残しておいてください。

以下、サンプルです。(短くするため、2項目のみに減らしてあります。)
<html>
<head>
<script type="text/javascript">
window.onload = function() {
var i, p = document.getElementById('tableBox').getElementsByTagName('TABLE');
for (i=0; i<p.length; i++) check(p[i]);
}

function test(evt) {
var t = evt.target || evt.srcElement;
if (t.nodeName != 'INPUT' || t.type != 'checkbox') return;
var p = t.parentNode;
while (p.nodeName != 'TABLE') p = p.parentNode;
check(p);
ttlValue();
}

function check(p) {
var n, c, i = 0, e = p.getElementsByTagName('INPUT');
while (e[i]) {
n = e[i].name;
c = 0;
while (e[i] && e[i].name == n) {
if (e[i].checked) c += parseInt(e[i].value);
e[i].disabled = false;
e[i++].style.visibility = 'visible';
}
if (c<2) while (e[i]) {
//e[i].checked = false; //一度消えたらチェックも消す場合
e[i].disabled = true;
e[i++].style.visibility = 'hidden';
}
}
}

function ttlValue() { return; } //←省略しています
</script>
</head>

<body>

<form name="skillForm" onclick="test(event)">
<div id="tableBox">
<p>( )内の数値は必要ポイントです。</p>

<h3>防御技能</h3>
<table cellspacing="0">
<tr>
<td colspan="2" class="top left dankai">第1段階</td>
<td colspan="2" class="top dankai">第2段階</td>
<td colspan="2" class="top dankai">第3段階</td>
<td class="top dankai">第4段階</td>
</tr>
<tr>
<td class="left noLineUnder green">HGリロードタイム</td>
<td class="noLineUnder green">切替速度</td>
<td class="noLineUnder yellow2">PDW</td>
<td class="noLineUnder green">連射タイム</td>
<td class="noLineUnder yellow1">サイレンサー</td>
<td class="noLineUnder green">振る速度向上</td>
<td class="noLineUnder green">リーチ拡張</td>
</tr>
<tr>
<td class="left chBox green"><i>(1)</i>
<input name="bx2Lv1" type="checkbox" value="1" /></td>
<td class="chBox green"><i>(1)</i>
<input name="bx2Lv1" type="checkbox" value="1" /></td>
<td class="chBox yellow2"><i>(3)</i>
<input name="bx2Lv2" type="checkbox" value="3" /></td>
<td class="chBox green"><i>(2)</i>
<input name="bx2Lv2" type="checkbox" value="2" /></td>
<td class="chBox yellow1"><i>(2)</i>
<input name="bx2Lv3" type="checkbox" value="2" /></td>
<td class="chBox green"><i>(2)</i>
<input name="bx2Lv3" type="checkbox" value="2" /></td>
<td class="chBox green"><i>(2)</i>
<input name="bx2Lv4" type="checkbox" value="2" /></td>
</tr>
</table>

<h3>身体技能</h3>
<table cellspacing="0">
<tr>
<td colspan="3" class="top left dankai">第1段階</td>
<td colspan="3" class="top dankai">第2段階</td>
<td colspan="2" class="top dankai">第3段階</td>
<td class="top dankai">第4段階</td>
</tr>
<tr>
<td class="left noLineUnder green">衝突抵抗度</td>
<td class="noLineUnder green">探知力向上</td>
<td class="noLineUnder green">ダッシュ回復力増加</td>
<td class="noLineUnder green">上級空挺部隊</td>
<td class="noLineUnder green">隠密性向上</td>
<td class="noLineUnder green">持久力増加</td>
<td class="noLineUnder green">科学攻撃抵抗度</td>
<td class="noLineUnder green">爆発への抵抗</td>
<td class="noLineUnder green">体力増加</td>
</tr>
<tr>
<td class="left chBox green"><i>(1)</i>
<input name="bx3Lv1" type="checkbox" value="1" /></td>
<td class="chBox green"><i>(1)</i>
<input name="bx3Lv1" type="checkbox" value="1" /></td>
<td class="chBox green"><i>(1)</i>
<input name="bx3Lv1" type="checkbox" value="1" /></td>
<td class="chBox green"><i>(2)</i>
<input name="bx3Lv2" type="checkbox" value="2" /></td>
<td class="chBox green"><i>(2)</i>
<input name="bx3Lv2" type="checkbox" value="2" /></td>
<td class="chBox green"><i>(2)</i>
<input name="bx3Lv2" type="checkbox" value="2" /></td>
<td class="chBox green"><i>(4)</i>
<input name="bx3Lv3" type="checkbox" value="4" /></td>
<td class="chBox green"><i>(4)</i>
<input name="bx3Lv3" type="checkbox" value="4" /></td>
<td class="chBox green"><i>(5)</i>
<input name="bx3Lv4" type="checkbox" value="5" /></td>
</tr>
</table>
</div>
<div id="LvPt">
Lv.<select name="ch2" onChange="ttlValue()">
<option value="1" selected>1</option>
<option value="2">2</option>
<!-- 以下省略 -->
</select>
残り<INPUT name="result" type="text" value="1" size="3" id="result" /> pt
</div>
</form>
</body>
</html>

(1)ご提示のソースの構成という条件で、<table>内の<input>要素は全て
  チェックボックスであると仮定し、そのチェックは省略しています。
(2)同じ段階の項目はinputのname属性が同じであるということを利用して  
  判定しています。 (なので、ご提示の「至近距離技能」のところは
  正しく動作しません。=全部同じnameになっている)
(3)ソースの「onClick="ttlValue()"」と「disabled」の設定は繰り返しが
  多いので、省略できるようにしました。
  下のサンプルのようにするこ...続きを読む

Q無料DLしたワードの見積書のセルに数字が入力不能

こんにちは。

OSはWIN7 HOME  WEBブラウザはグーグルクロームです。
WORD2010を使っています。

WORDの最新バージョンの割には初歩的な質問ですみません。

ネット上で見つけた、WORDの見積無料テンプレート集
(http://www.rcnet.ne.jp/otasuke/word1a.htm)
のある見積書をDLして見積書を作成中、見積書のいくつかのセルには
どうしても数字や文字が入力出来ず、困っています。
(大半のセルには入力出来るのですが)

その入力出来ないセルにマウスポインターを当てると、カーソルは
確かに点滅しています。

よく見ると、セル内に入力しようとして入力出来ない数字や文字は
そのセルの下の見えないところ?に入力されているようですが。
(数字や文字のほんの一部が見えています)

よろしくお願い致します。

Aベストアンサー

ひどいな、このテンプレート…無意味なスペースとタブがいっぱい

一つのセルに2行分入力できるようになってるみたいですが、3行目に入力してしまっているのでしょうか?
(どうしてそうなるのかはわかりませんが)
セルの高さを広くしてみたら入力文字が出てきますか?

QチェックボックスのON/OFFに応じて別の複数のチェックボックスも連動ON/OFF

7番のcheckboxをON→1,2,4,5番にチェックもON
7番のcheckboxをOFF→1,2,4,5番にチェックもOFF

という風に動作させる記述をご教示ください。
よろしくお願い致します。


<html>
<head>
<script type="text/javascript">
</script>
</head>
<body>
<form action="" method="post" name="myform">
去年<br>
1番<input type="checkbox" name="kyonen[]" value="1">1月<br>
2番<input type="checkbox" name="kyonen[]" value="2">2月<br>
3番<input type="checkbox" name="kyonen[]" value="3">3月<br>
今年<br>
4番<input type="checkbox" name="kotosi[]" value="1">1月<br>
5番<input type="checkbox" name="kotosi[]" value="2">2月<br>
6番<input type="checkbox" name="kotosi[]" value="3">3月<br>
7番<input type="checkbox" name="mychk">去年と今年の1、2月をまとめてチェック<br>
</form>
</body>
</html>

7番のcheckboxをON→1,2,4,5番にチェックもON
7番のcheckboxをOFF→1,2,4,5番にチェックもOFF

という風に動作させる記述をご教示ください。
よろしくお願い致します。


<html>
<head>
<script type="text/javascript">
</script>
</head>
<body>
<form action="" method="post" name="myform">
去年<br>
1番<input type="checkbox" name="kyonen[]" value="1">1月<br>
2番<input type="checkbox" name="kyonen[]" value="2">2月<br>
3番<input type="checkbox" name="kyonen[]" value="3">3月<br...続きを読む

Aベストアンサー

条件が複雑になるともう少し工夫が必要になりますが、
とりあえずはこんな感じでいけると思います。

<html>
<head>
<script type="text/javascript">
function checkFunc(obj){
f=obj.form
for(var i=0;i<f.length;i++){
if((f[i].name=="kyonen[]" || f[i].name=="kotosi[]")&& (f[i].value=="1" ||f[i].value=="2")) f[i].checked=obj.checked
}
}
</script>
</head>
<body>
<form action="" method="post" name="myform">
去年<br>
1番<input type="checkbox" name="kyonen[]" value="1">1月<br>
2番<input type="checkbox" name="kyonen[]" value="2">2月<br>
3番<input type="checkbox" name="kyonen[]" value="3">3月<br>
今年<br>
4番<input type="checkbox" name="kotosi[]" value="1">1月<br>
5番<input type="checkbox" name="kotosi[]" value="2">2月<br>
6番<input type="checkbox" name="kotosi[]" value="3">3月<br>
7番<input type="checkbox" name="mychk" onClick="checkFunc(this)">去年と今年の1、2月をまとめてチェック<br>
</form>
</body>
</html>

条件が複雑になるともう少し工夫が必要になりますが、
とりあえずはこんな感じでいけると思います。

<html>
<head>
<script type="text/javascript">
function checkFunc(obj){
f=obj.form
for(var i=0;i<f.length;i++){
if((f[i].name=="kyonen[]" || f[i].name=="kotosi[]")&& (f[i].value=="1" ||f[i].value=="2")) f[i].checked=obj.checked
}
}
</script>
</head>
<body>
<form action="" method="post" name="myform">
去年<br>
1番<input type="checkbox" name="kyonen[]" value="1">1月...続きを読む

Q仕事終了後の見積書

取引先に仕事を依頼した際、報酬を決めて仕事が決定し、無事終了いたしました。
終了後、請求書ではなく見積書をお送りさせていただきますと伝えられ、見積書が送られてきました。
普通は仕事が終了すれば請求書を送ってくるはずですが、この会社は仕事終了後の請求書を出す前に見積書を出しているようです。
見積書というのは、通常仕事が決定する前に提示するものだと思いますが、実際このようなやり方をしている会社など他にも存在するのでしょうか?

そして仕事終了後の見積書というのは、何か意味があるものなのでしょうか?
お互いに手間がかかることなので、今後は仕事終了後の見積書提出はやめてもらいたいのですが、それはこちらから伝えても失礼ではありませんでしょうか?

Aベストアンサー

請求書と一緒に見積書が送られてくることもよくあります。
職種にもよると思いますが、請求書には一式XX円で、見積書を内訳書の様にする場合もあります。後からお客様からの要望で見積書をだすこともよくあります。
御社で必要のないものなら、断っても問題ないと思います。

Qネストされたチェックボックスの子孫要素にチェックを入れると、親要素にもチェックされる

<ul>
<li><input type="checkbox" name="A" value="">親A
<ul>
<li><input type="checkbox" name="B" value="" class="second">子A
<ul><li><input type="checkbox" name="C" value="" class="second">孫A</li>
</li>
</ul>
</li>
</ul>
<ul>
<li><input type="checkbox" name="A" value="">親B
<ul>
<li><input type="checkbox" name="B" value="" class="second">子B
<ul><li><input type="checkbox" name="C" value="" class="second">孫C</li>
</li>
</ul>
</li>
</ul>



3 階層あり、親、子や孫にチェックを入れた時に、その全てに連動してチェックされる方法は
ありますでしょうか ?
親だけチェックして子や孫もチェックされるのはできるのですが、逆ができません。
ちなみに同じつくりのものが下に続くのですが、A と B は連動せず、
ID NAMEも同じものです。

どうぞ、わかる方お願いいたします。

<ul>
<li><input type="checkbox" name="A" value="">親A
<ul>
<li><input type="checkbox" name="B" value="" class="second">子A
<ul><li><input type="checkbox" name="C" value="" class="second">孫A</li>
</li>
</ul>
</li>
</ul>
<ul>
<li><input type="checkbox" name="A" value="">親B
<ul>
<li><input type="checkbox" name="B" value="" class="second">子B
<ul><li><input type="checkbox" name="C" value="" class="second">孫C</li>
</li>
</ul>
</li>
</ul>



3 階層あり、...続きを読む

Aベストアンサー

構造さえ確定できればできないことはないと思いますが
親をチェックして、子孫にチェックがはいる仕組みなら
孫や子をチェックすると親や子にチェックがはいるとなると
常にすべて同じチェック状態になっちゃいますけどそれって意味あります?

つまり、
親をチェック→子・孫にチェックがはいる
子をチェック→親・孫にチェックがはいる
孫をチェック→親・子にチェックがはいる

つまりどこか一つのチェックで十分では?

Q消費税8%を見積書に適応するのはいつからですか?

小さな会社で、取引先に提出する見積書をエクセルで作成し、使用しています。
今年1年分の見積書フォーマットを作成するにあたって、8%の消費税が適応されるのはいつからか、教えて頂きたいです。

業務の合間に見積のみ作成していて経理を専門でやっていません。
基本的なことだと思いますがどうぞよろしくお願いします。

見積書の日付は請求月の前月25日に設定しています。
さらに、見積書は明細的な扱いで便宜上作成し、請求書に添付するかたちにで取引先に添付しています。

例:3月見積書(書類上は見積日2月25日と記載)
     4月10日、請求書とともに取引先に提出

こういった場合、8%の消費税で見積を提出するようになるのは何月からでしょうか?

どうぞよろしくお願いいたします。

Aベストアンサー

消費税が8%が適用になるのは、幾つかの例外をのぞいて
「物品やサービスの提供」が4月1日以降になるものからです。

したがって、仮に月末締めで物品またはサービスを提供しているのであれば、
4月分の見積もりからです。

ご質問のケースだと、
5/10に提出する3/25付けの4月分の見積もりからになります。

余談ですが、もちろん貴社や取引先の都合上で止むを得ないのだとは思いますが、納入後の見積書って法的にはおかしいような気もしますが・・・・

Qチェックボックスの入力チェック

JSPでJavaScript使用しています。
no.logからテキスト(1~80までの数値がランダムに書いてある)を読みこんで、その数字でチェックボックスを作り、チェックの付いている番号を違うJSPに飛ばしています。この時どこもチェックされて無ければメッセージを表示したいのですがうまくいきません。
チェックが付いているのに、チェックされていないと認識され、メッセージが表示されてしまいます。5行目のif文が問題だと思うのですが、どうすればいいのかわかりません。アドバイス下さい。宜しく御願いします。

<script language="JavaScript">
<!--
function check(){
no = document.form1.no.value;
if(no == null){
alert("チェックしてください");
return false;
}
}
//-->
</script>

<form name="form1" method="post" action="test2.jsp" onSubmit="return check()">
<%
String str = null;
int tmpn = 0;
int count = 0;

BufferedReader br2 = new BufferedReader(new FileReader(getServletContext().getRealPath("/WEB-INF/no.log")));

while((str = br2.readLine()) != null) {
tmpn = Integer.parseInt(str);
count++;
if(tmpn >= 1 && tmpn <= 9){
%>
<input type="checkbox" name="no" value="<%= String.valueOf(tmpn) %>">0<%= tmpn %>
<%
}else{
%>
<input type="checkbox" name="no" value="<%= String.valueOf(tmpn) %>"><%= tmpn %>
<%
if(count == 10){
out.print("<br>");
count = 0;
}
}
}
%>
<input type="submit" value="送信">

JSPでJavaScript使用しています。
no.logからテキスト(1~80までの数値がランダムに書いてある)を読みこんで、その数字でチェックボックスを作り、チェックの付いている番号を違うJSPに飛ばしています。この時どこもチェックされて無ければメッセージを表示したいのですがうまくいきません。
チェックが付いているのに、チェックされていないと認識され、メッセージが表示されてしまいます。5行目のif文が問題だと思うのですが、どうすればいいのかわかりません。アドバイス下さい。宜しく御願いします。

<sc...続きを読む

Aベストアンサー

JavaScriptでチェックボックスやラジオボタンがチェックされているかを判断するには
checked
の値が、trueかfalseかで判定します。

チェックボックスは複数チェックされることもあり得るので、具体的にはこんな感じでしょうか
function check(){
var flg=0;
for(i=0;i<document.form1.no.length;i++){
if(document.form1.no[i].checked==true) flg=1;
}
if(flg==0) alert("チェックしてください");
}

参考URL:http://www.openspc2.org/JavaScript/ref/form/checked.htm

Q見積書の提出を拒否しても、商法上違法になりませんか?

通信関係で、条件が複雑なために、お互いの納得のために、見積書(計算書)の作成を依頼したのですが、見積書(計算書)は提出出来ないと拒否されました。
顧客の見積書(計算書)作成依頼に対して、作成を拒否することは商法上違法ではないのでしょうか?

Aベストアンサー

>見積書(計算書)は提出出来ないと拒否されました


提出が義務付けられているわけではなく、商法の違反にはならないと思います。
見積書を提出しない時点で取引を望んでいないと判断するのが通常ですが、見積書に替わる新たな書類の提出がなければ取引はできないのではないでしょうか。

Qチェックボックスのチェック処理

HTMLでボタン押下時にチェックしたいことがあります。
■カテゴリーA~Cで、カテゴリー毎に選択できるのは一つのみ
 (例)「A1・あ」と「A2・お」が選択時はNG
■カテゴリーは最大2つまで選択可能
 (例)「A1・い」と「C1・さ」が選択時はOK
   「A1・い」と「B2・く」と「C1・さ」が選択時はNG
<html>
<head>
</head><body>
<form>
<table border="1">
<tr>
<td>A1</td>
<td><input type="checkbox" name="chk1" value="1">あ</td>
</tr>
<tr>
<td> </td>
<td><input type="checkbox" name="chk1" value="1">い</td>
</tr>
<tr>
<td> </td>
<td><input type="checkbox" name="chk1" value="1">う</td>
</tr>
<tr>
<td>A2</td>
<td><input type="checkbox" name="chk1" value="1">え</td>
</tr>
<tr>
<td> </td>
<td><input type="checkbox" name="chk1" value="1">お</td>
</tr>
<tr>
<td>B1</td>
<td><input type="checkbox" name="chk1" value="1">か</td>
</tr>
<tr>
<td>B2</td>
<td><input type="checkbox" name="chk1" value="1">く</td>
</tr>
<tr>
<td> </td>
<td><input type="checkbox" name="chk1" value="1">け</td>
</tr>
<tr>
<td>C1</td>
<td><input type="checkbox" name="chk1" value="1">さ</td>
</tr>
<tr>
<td>C2</td>
<td><input type="checkbox" name="chk1" value="1">し</td>
</tr>
<tr>
<td> </td>
<td><input type="checkbox" name="chk1" value="1">す</td>
</tr>
</table>
<input type="submit" value="チェック">
</form>
</body>
</html>

すみませんがよろしくお願いします。

HTMLでボタン押下時にチェックしたいことがあります。
■カテゴリーA~Cで、カテゴリー毎に選択できるのは一つのみ
 (例)「A1・あ」と「A2・お」が選択時はNG
■カテゴリーは最大2つまで選択可能
 (例)「A1・い」と「C1・さ」が選択時はOK
   「A1・い」と「B2・く」と「C1・さ」が選択時はNG
<html>
<head>
</head><body>
<form>
<table border="1">
<tr>
<td>A1</td>
<td><input type="checkbox" name="chk1" value="1">あ</td>
</tr>
<tr>
<td> </td>
<td><input t...続きを読む

Aベストアンサー

こういう場合はまず、カテゴリーわけを先にします。
各チェックボックスにclassを振ってやってください。
その後、チェックボックスを押すたびに毎回チェックをするのが
妥当なやりかたでしょう。

ユーザビリティーを考えると以下のようなものになります。

<script language="javascript">
function check(obj){
var f=obj.form;
var checked_count=0;
var checked_class=new Object();
for(var i=0;i<f.length;i++){
if(f[i].className==obj.className && f[i]!=obj){
f[i].checked=false;
}else if(f[i].type=="checkbox" && f[i].checked){
checked_count+=1;
checked_class[f[i].className]=true;
}
}
for(var i=0;i<f.length;i++){
f[i].disabled=(checked_count==2 && f[i].type=="checkbox" && checked_class[f[i].className]!=true)
}
}
</script>

<form>
<table border="1">
<tr>
<td>A1</td>
<td><input type="checkbox" name="chk1" value="1" class="cate_a" onClick="check(this)">あ</td>
</tr>
<tr>
<td> </td>
<td><input type="checkbox" name="chk1" value="1" class="cate_a" onClick="check(this)">い</td>
</tr>
<tr>
<td> </td>
<td><input type="checkbox" name="chk1" value="1" class="cate_a" onClick="check(this)">う</td>
</tr>
<tr>
<td>A2</td>
<td><input type="checkbox" name="chk1" value="1" class="cate_a" onClick="check(this)">え</td>
</tr>
<tr>
<td> </td>
<td><input type="checkbox" name="chk1" value="1" class="cate_a" onClick="check(this)">お</td>
</tr>
<tr>
<td>B1</td>
<td><input type="checkbox" name="chk1" value="1" class="cate_b" onClick="check(this)">か</td>
</tr>
<tr>
<td>B2</td>
<td><input type="checkbox" name="chk1" value="1" class="cate_b" onClick="check(this)">く</td>
</tr>
<tr>
<td> </td>
<td><input type="checkbox" name="chk1" value="1" class="cate_b" onClick="check(this)">け</td>
</tr>
<tr>
<td>C1</td>
<td><input type="checkbox" name="chk1" value="1" class="cate_c" onClick="check(this)">さ</td>
</tr>
<tr>
<td>C2</td>
<td><input type="checkbox" name="chk1" value="1" class="cate_c" onClick="check(this)">し</td>
</tr>
<tr>
<td> </td>
<td><input type="checkbox" name="chk1" value="1" class="cate_c" onClick="check(this)">す</td>
</tr>
</table>
<input type="submit" value="チェック">
</form>

こういう場合はまず、カテゴリーわけを先にします。
各チェックボックスにclassを振ってやってください。
その後、チェックボックスを押すたびに毎回チェックをするのが
妥当なやりかたでしょう。

ユーザビリティーを考えると以下のようなものになります。

<script language="javascript">
function check(obj){
var f=obj.form;
var checked_count=0;
var checked_class=new Object();
for(var i=0;i<f.length;i++){
if(f[i].className==obj.className && f[i]!=obj){
f[i].checked=fal...続きを読む


人気Q&Aランキング

おすすめ情報