WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:あるチェックボックスにチェックが入ったら他のフォームをオンにしたい

0:[投稿] Twin [2005/03/10 00:44 ][環境:IE6,windows2000 Windows2003server]

http://chaichan.hp.infoseek.co.jp/qa3500/qa3591.htm

ここに全く逆のJavascriptがあったのですが、
チェックボックスをONにしたときにフォームが使えるようにすることはできないのでしょうか?
(チェックボックスがOFFのときはフォームは使用不可能で。)
誰かご教授ください。


1:[回答] ふん [2005/03/10 00:52 ]

質問の意味がよくわからないのですが、checkboxにチェックが入ったときだけsubmitできるようにするという意味でしょうか?
checkboxにチェックが入ったときだけフォームへの入力が可能になるようにするという意味でしょうか?


2:[回答] twin [2005/03/10 00:56 ]

後者のほうです。
チェックボックスにチェックが入ったときだけテキストボックスなどへの記入が可能になるという意味です。
説明が下手ですいませんでした。m(_ _)m


3:[回答] を [2005/03/10 09:12 ]

document.all.テキストボックス等名称.disabled = true;で記入などができなくなります。
そこで、チェックボックスがチェックされたときに配置してあるフォームに対して、上記操作をしてみてください。

#<form>をdisabledにしても中に配置されているテキストボックス等には入力が可能なのはどうにかしてほしい・・・


4:[回答] を [2005/03/10 13:48 ]

すみません。
入力を可能にしたいなら、disabled=falseでした。


5:[回答] twin [2005/03/10 15:07 ]

上記URLに載っているソースならば
var flag = true; を var flag = false;
にすればいいのでしょうか?
それだとチェックをまたはずしたときに入力不可能にならないのですが・・・
Javascriptに詳しくないのでまたご教授ください。m(_ _)m


6:[回答] twin [2005/03/10 15:50 ]

見様見真似でやってみたらできました。
<script type="text/javascript"><!--
function checkB()
{
var box = document.myFORM;
var flag = false;

if(box.other.checked == true){{flag = false;}
for(i=1; i<5; i++){box.elements["myCHK"+i].disabled = flag;}
}else{
{flag = true;}
for(i=1; i<5; i++){box.elements["myCHK"+i].disabled = flag;}}
}
// --></script>
おかしなところがないかどうか教えてください。m(_ _)m


7:[回答] twin [2005/03/10 16:17 ]

□文字例1 [オプションメニュー1] [オプションメニュー2]
□文字例2 [オプションメニュー3] [オプションメニュー4]
□文字例3 [オプションメニュー5] [オプションメニュー6]
(□はチェックボックス)
文字例1のチェックにはメニュー1,2に、
文字例2のチェックにはメニュー3,4に・・・
といった具合で処理を分けたいのですがそれはどのようにcheckBなどを編集すればいいのでしょうか・・・
今はfunction checkB(){省略}をcheckC,Dといった具合につなげているのですが・・・


8:[回答] を [2005/03/10 18:28 ]

文字列1のチェックボックスがチェックされたら、
オプションメニュー1,2のdisabled=false
チェックがなくなったら、
オプションメニュー1,2のdisabled=true

文字列2に対してはオプションメニュー3,4
文字列3に対してはオプションメニュー5,6

に対して、同じようにしたらOKですよ。


9:[回答] twin [2005/03/10 21:02 ]

それは
function checkB()
{
var box = document.myFORM;
var flag = false;

if(box.other1.checked == true){
{flag = false;}
for(i=1; i<3; i++){box.elements["myCHK"+i].disabled = flag;}
}else{
{flag = true;}
for(i=1; i<3; i++){box.elements["myCHK"+i].disabled = flag;}
}
}

function checkC()
{
var box = document.myFORM;
var flag = false;

if(box.other2.checked == true){
{flag = false;}
for(i=3; i<5; i++){box.elements["myCHK"+i].disabled = flag;}
}else{
{flag = true;}
for(i=3; i<5; i++){box.elements["myCHK"+i].disabled = flag;}
}
}
こういうことなのでしょうか?


10:[回答] を [2005/03/11 09:06 ]

オプションメニューのnameがmyCHK1〜myCHK6だったら、そういうことです。
あと、文字列3に対する処理を同じように書けばOKだと思いますよ。


11:[完了] twin [2005/03/12 16:54 ]

ありがとうございました。m(_ _)m
これを元にHPを作成してみます。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World