アプリ版:「スタンプのみでお礼する」機能のリリースについて

昨日の質問した下記の関連で再質問です。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1765687


親1に対し、子1~4と、合計5つのチェックボックスがあり、
親のチェックOFF ⇒ 子1~4をdisableに、
子のチェックON ⇒ 子1~4をactive としたいのですが、
#4さんのご回答を適用すると、上記5つのチェックボックス以外も
全てdisableの対象になってしまいます。

他方、自分の元質問のソースを改造しようとも思いましたが、
子1~4のname属性が全て違う名前のため、そのままでは使えません。

ついでに(些細なことですが)
子1~4の全てがONにされた時に、親がOFFなら自動でONにしたいです。
テンプレートは下記ですが、よろしくお願い致します。

<html>
<head>
<script language="javascript" type="text/javascript">
// ■■■■
</script>
</head>
<body>
<form id="query" name="query">
<input type="checkbox" name="oya" value="1" checked>親
<input type="checkbox" name="ko1" id="ko1" value="1" checked>子1
<input type="checkbox" name="ko2" id="ko2" value="1" checked>子2
<input type="checkbox" name="ko3" id="ko3" value="1" checked>子3
<input type="checkbox" name="ko4" id="ko4" value="1" checked>子4
</form>
</body>
</html>

A 回答 (3件)

ソースによっては nameがko+nで1から連番になっているとかだったら単純にループで回せるかも。


------------------------------------------------------
<html>
<head>
<script language="javascript" type="text/javascript">
function autochk(p,name){
var f = p.form;
var el;
for(var prop in f){
if(prop.toString().substr(0,2)==name){//名前がname('ko')で始まるもの
el=f.elements[prop];
if(el.type=="checkbox"){//このチェックは省略してもいいかも
el.disabled = !p.checked;
}
}
}
}
</script>
</head>
<body>
<form id="query" name="query">
<input type="checkbox" name="oya" value="1" checked checked onclick="autochk(this,'ko');">親
<input type="checkbox" name="ko1" id="ko1" value="1" checked>子1
<input type="checkbox" name="ko2" id="ko2" value="1" checked>子2
<input type="checkbox" name="ko3" id="ko3" value="1" checked>子3
<input type="checkbox" name="ko4" id="ko4" value="1" checked>子4
<input type="text" name="other" value="その他">
</form>
</body>
</html>
    • good
    • 0
この回答へのお礼

BLUEPIXYさん、再々のレスありがとうございます。

動作確認させていただきましたが
実にいい感じです。

name('ko')で始める件については問題ありませんので
そのように調整いたします。

お礼日時:2005/11/09 23:53

idよりはこの場合はclassの方が使いやすくない


ですか?

<html>
<head>
<script language="javascript" type="text/javascript">
function autochk(f){
for(var i=0;i<f.form.length;i++){
if (f.form.elements[i].className=="ko"){f.form.elements[i].disabled = !f.checked;}
}
}
</script>
</head>
<body>
<form>
<input type="checkbox" name="oya" value="1" checked onclick="autochk(this);">親
<input type="checkbox" name="ko1" class="ko" value="1" checked>子1
<input type="checkbox" name="ko2" class="ko" value="1" checked>子2
<input type="checkbox" name="ko3" class="ko" value="1" checked>子3
<input type="checkbox" name="ko4" class="ko" value="1" checked>子4
<input type="checkbox" name="other" value="1" checked>他
</form>
</body>
</html>
    • good
    • 0
この回答へのお礼

yambejpさん、いつもありがとうございます。

動作はすこぶる快適です。
おかげさまで大変助かりました。
ありがとうございました。

お礼日時:2005/11/09 23:54

> 親のチェックOFF ⇒ 子1~4をdisableに、


> 子1~4の全てがONにされた時に、親がOFFなら自動でONにしたいです。

親がチェックOFFで子1~4がdisableなら
子のチェック自体が行えないことないですか?
    • good
    • 0
この回答へのお礼

本当ですね、失礼しました。
何のためのdisableなことやら(^^;;;
> 子1~4の全てがONにされた時に、親がOFFなら自動でONにしたいです。
は、どうか無視下さい。

お礼日時:2005/11/09 17:28

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