• 締切済み

チェックボックスの状態とテキストフィールド等の連動

分かりにくいタイトルですいません;下のようなフォームがあるとします。 [チェックボックス][テキストフィールド][プルダウンメニュー] それで、このチェックボックスをオフにすると左側のテキストフィールドとプルダウンメニューの両方を無効にできるようにしたいのです。お分かりの方、ぜひご伝授願います。

みんなの回答

  • chanfi
  • ベストアンサー率37% (10/27)
回答No.4

>#2さんのサンプルのように、3つのチェックボックスがあるのですが、 >#1さんと#2さんとでは機能的に違いはありますか? ほとんど一緒です。 「見た目で分かりやすく」と書いてある通り、 見た目で分かりやすくしただけです。 >このスクリプト、実行すると「チェックがオン:フォーム無効」になっているんですが、 >自分は「チェックがオフ:フォーム無効/チェックがオン:フォーム有効」の状態にしたいのです。 >初心者なので、よろしくお願いします。 if(checkboxObj.checked == true){ ←チェックボックスがONだったら textObj.disabled = true; ←テキストボックスを使用不可 selectObj.disabled = true; ←コンボボックスを使用不可 }else{ ←それ以外だったら textObj.disabled = false; ←テキストボックスを使用可能 selectObj.disabled = false; ←コンボボックスを使用可能 } という風にしましたので、反対にする方法はご自身で考えてみてください。 >まだまだサンプル頼りの初心者ですので、どうかよろしくお願いします。 サンプルをいろいろいじくったり、検索サイトで検索してみたりして、 どのコードがどんな働きをしているのか等、いろいろ調べてみると良いかと思います。 今回、#3(#1)さんが簡潔なコードを作ってくださいましたが、 「これは良いものを作ってもらった!コピペでさっそく使ってみよう!」ではなく、 それぞれどんな意味があるかを調べておくと、今後役に立ってくるかと思います。 0から覚えるのは大変かと思いますが、がんばってください。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

じゃ、こんなふうにセットになっているくくりをdivで囲ってやるといいですよ。 <script> function func(obj){ var p=obj.parentNode; ns=obj; while(ns=ns.nextSibling){ if(ns.type!=undefined) ns.disabled=!obj.checked; } } </script> <form> <div> <input type="checkbox" onClick="func(this)" checked> <input type="text" name="text1"> <select name="select1"> <option>1</option> <option>2</option> <option>3</option> </select> </div> <div> <input type="checkbox" onClick="func(this)" checked> <input type="text" name="text2"> <select name="select2"> <option>1</option> <option>2</option> <option>3</option> </select> </div> <div> <input type="checkbox" onClick="func(this)" checked> <input type="text" name="text3"> <select name="select3"> <option>1</option> <option>2</option> <option>3</option> </select> </div> </form>

  • chanfi
  • ベストアンサー率37% (10/27)
回答No.2

見た目で分かりやすくするならこんな感じですかね。 【javascript】 function closeOpen(number){ checkboxId = "checkbox" + number; textId = "text" + number; selectId = "select" + number; checkboxObj = document.getElementById(checkboxId); textObj = document.getElementById(textId); selectObj = document.getElementById(selectId); if(checkboxObj.checked == true){ textObj.disabled = true; selectObj.disabled = true; }else{ textObj.disabled = false; selectObj.disabled = false; } } 【html】 <input type="checkbox" onClick="closeOpen(1)" id="checkbox1"> <input type="text" id="text1"> <select id="select1"> <option>1</option> <option>2</option> <option>3</option> </select> <br/> <input type="checkbox" onClick="closeOpen(2)" id="checkbox2"> <input type="text" id="text2"> <select id="select2"> <option>1</option> <option>2</option> <option>3</option> </select> <br/> <input type="checkbox" onClick="closeOpen(3)" id="checkbox3"> <input type="text" id="text3"> <select id="select3"> <option>1</option> <option>2</option> <option>3</option> </select> idと引数を連番にしようすることで、項目を増やすこともできます。 ご参考までに。

Thund_Bird
質問者

お礼

このスクリプト、実行すると「チェックがオン:フォーム無効」になっているんですが、自分は「チェックがオフ:フォーム無効/チェックがオン:フォーム有効」の状態にしたいのです。初心者なので、よろしくお願いします。

Thund_Bird
質問者

補足

#2さんのサンプルのように、3つのチェックボックスがあるのですが、#1さんと#2さんとでは機能的に違いはありますか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

たとえばこんな感じ。 どれを無効にしてどれを無効にしないかは、ifのところを工夫してください <script> function func(obj){ var f=obj.form; for(var i=0;i<f.length;i++){ if(f[i]!=obj && f[i].type!="submit"){ f[i].disabled=!obj.checked; } } } </script> <form> <input type="checkbox" checked onchange="func(this)"> <input type="text"> <select> <option>test</option> <option>test</option> <option>test</option> </select> <input type="submit" value="go!"> </form>

Thund_Bird
質問者

補足

また#2さんに補足です。一つのグループ(?)に二つ以上同じパーツ(テキストボックスが二つなど)があると片方しか有効・無効が切り替わらず、他は無反応です。ずうずうしい話ですが、#2さんの回答の方にも書きました両方を修正してもらえるととても嬉しいです。まだまだサンプル頼りの初心者ですので、どうかよろしくお願いします。

関連するQ&A

  • チェックボックスとテキストフィールドを連動させて、Javascriptでチェックをかけたい

    このようなアンケートがあるとします。 //アンケートスタート ●Q1 あなたはJavascriptを使いこなしていますか? ラジオボタン回答1 使いこなしている ラジオボタン回答2 あまり使いこなしているといえない ラジオボタン回答3 ぜんぜん使いこなしていない ●Q2 Q1で「あまり使いこなしているといえない」 「ぜんぜん使いこなしていない」と回答した方のみお答えください。 その理由はどのようなものですか? チェックボックス回答1 むずかしい チェックボックス回答2 わかりにくい チェックボックス回答3 そのほか テキストフィールド そのほかの理由(       ) 【送信ボタン】 //アンケートエンド ■上のアンケートでJavascriptを使用して 次のことをしたいのですが、教えてください。 1.Q1の2と3にチェックがあるのに、 Q2に未回答のままフォームデータを送信しようとした場合に、 アラートを表示させたい 2.Q2で3を選んだ人にもかかわらず、 そのほかの理由テキストフィールドに未記入のまま フォームデータを送信しようとした場合、 アラートを表示させたい よろしくお願いします。

  • チェックボックスをクリックしたら、テキストに入力出来る様にしたいです

    今メールフォームを作っています。 チェックボックスにチェックしたら、テキストフィールドに記入しないと、 エラーがでる様にJavascriptでチェックをかけたいのですが教えて頂けませんでしょうか。 下記のようなフォームにしたいです。 ■フォーム これをあなたは何処で知りましたか? チェックボックス1 新聞 チェックボックス2 テレビ チェックボックス3 その他 テキストフィールド その他を選んだ方は記入して下さい。 このチェックボックスは必須にして、 チェックボックス1~3までのどれかをチェックしないとアラートを表示したいです。 また、チェックボックス3を選択したのにテキストフィールドに入力していない場合も アラートを表示したいです。 上記のalertは送信ボタン<input name="submit" type="submit" value="情報を送信する"> を押した際に出したいです。 この様なチェックボックスのグループを同じフォームに2つ作りたいです。

  • フィールド1だけのテキストボックスの幅を変える事は

    フィールド1だけのテキストボックスの幅を変える事は出来ないのでしょうか? アクセス2007です。 テーブル1に ・ID オートナンバー型 ・フィールド1 テキスト型 ・フィールド2 テキスト型 を作り、 作成→その他フォーム→フォームウィザードで、フォームを作りました。 そして、デザインビューでテキストボックスのコントロールの幅を変えようと思うのですが フィールド1だけの幅を長くしたいのに ・ID ・フィールド1 ・フィールド2 の全てのテキストボックスが同じ長さになってしまいます。 「グループ化がされてるのかな?」と思い見てみましたが、されていません。 フィールド1を選択してF4を押して、プロパティシートを表示し、 幅を10にしたら、 ・ID ・フィールド1 ・フィールド2 全ての幅が10になってしまいました。 どうすれば、フィールド1だけのテキストボックスの幅を変える事が出来るのでしょうか? ご回答よろしくお願いします。

  • プルダウンメニューに連動するチェックボックスのdisable切り換え

    こんにちわ。 表記の件ですが、プルダウンメニューに連動するチェックボックスのdisableを切り換えたいと思っているのですが、なかなか上手くいきません・・・。 例えばプルダウンメニューにおいて ・食べ物 ・生き物 ・果物 ・穀物 というようなメニューがあり、さらにチェックボックスとして ・お米 ・りんご ・さかな ・みかん というチェックボックスがあるとします。 この場合、[食べ物]を選択すると全てが選択できるようになり、[果物]を選択すると[りんご]と[みかん]以外は無効(チェックボックスの選択ができない状態)となるスクリプトを作成したいということです。 もし、先行していずれかのチェックボックスが有効になっていて、プルダウンメニューを切り換えた場合はアラートと同時にチェックボックスをリセットするようできると尚素敵です。 皆様のお知恵を拝借できればと思います。 何卒お力添えいただければ幸いです。

  • チェックボックス以外の文字を抽出

    入力用フォームAに複数のチェックボックスとひとつのテキストボックスを配置し、 チェックの入っている項目とテキストボックスに入力した文字を 表示用フォームBの「フィールド1」にまとめて表示させています。 以下のようなイメージです。 <入力用フォームA> ■A □B ■C 【あいうえお】 <表示用フォームB> フィールド1【A C あいうえお】 表示用フォームBのフィールド1から、 テキストボックスで入力させた文字だけ(”あいうえお”) 抽出するにはどうしたらいいでしょうか? 入力用フォームAのチェックボックスとテキストボックスを それぞれ別のフィールドにして、 表示用フォームBで&でつなげて表示させるような構造だったら簡単なのでしょうが チェックボックスもテキストボックスも ひとつのフィールドにまとめてしまっているので どうしたらいいか分かりません。 ご教授よろしくお願いいたします!

  • テキストボックスに入力するとチェックボックスのチェックが入るようにするには

    Excelのユーザフォームについて質問させていただきます。 チェックボックスとテキストボックスがそれぞれ複数あります。 テキストボックスに入力すると、横にあるチェックボックスに 自動的にチェックが入るようにしたいのですが、 どのようにすればいいのでしょうか。        

  • 一つのチェックボックスでテキストフィールドとプルダウンリストを制御

    現在以下のようなテキストフィールドとプルダウンがあります。 <form name="register" action="register_kakunin.php" method="post"> <input type="checkbox" name="name_check" onclick="fchk(this,1);" /> <input name="revenue" onChange="keisan()" type="text" id="revenue" size="6" readOnly="true"/> <input type="checkbox" name="chk" onclick="fchk2(this)" /> <select name="paymethod" disabled="disabled"> <option value="">Pay Method</option> <option value="cash">cash</option> <option value="card">card</option> <option value="point">point</option> <option value="coupon">coupon</option> </select> </form> これを function fchk(obj, name_check){ var frm=document.register; if(!obj.checked){ /* チェックされたら、テキストボックスを有効化 */ frm.revenue.readOnly=true; }else{ /* チェックが外されたら、テキストボックスを無効化 */ frm.revenue.readOnly=false; } } function fchk2(obj) { var frm=obj.form; var len=frm.elements.length; /* フォームの要素数 */ if(obj.checked==true){ /* チェックボックスが選択されている場合、   プルダウンを有効化(disabled=false) */ frm.elements["paymethod"].disabled=false; }else{ /* チェックボックスが選択されていない場合、   プルダウンを無効化(disabled=true) */ frm.elements["paymethod"].disabled=true; } } という2つのスクリプトで制御しているのですが、前者を操作するときには必ず後者も操作することになるため、一つのチェックボックスで2つとも制御できるようにしたいのですが、どうしたらいいのでしょうか? 上記のjavascriptはネットから拾ってきたもので、自作ではありません。 宜しくお願いします。

  • チェックボックスに連動するテキストエリア

    初心者なので教えて下さい。 よく、アクセス解析などで、「テキストエリア内のタグをコピーしてお使い下さい」というものがありますが、これを、複数のチェックボックスを用意して、下にテキストエリアを用意して、チェックボックスの複数選択の組み合わせでテキストエリアの内容を切り替え表示する、というものを作りたいのですが、どなたか教えていただきたけますでしょうか?

  • テキストボックスフォームフィールドについて

    稟議書のテンプレートを作るのに、テキストボックスフォームフィールドのabボタンを使って入力フォーマットを作ってくれと言われて、ワードの本などでテキストボックスフォームフィールドを調べていますが、本にも、なかなか載っていなくて・・・フォームをダブルクリックすると、ダイアログボックスが出て、既定の文字列などでてきますが、入力してもらう時は、それぞれ、ダブルクリック後ダイアログボックスの既定の文字列に入力してもらうのでしょうか?いまいち使い方がよくわかりません。この機能を使うと、マルマル年マルマル月マルマル日などの年 月 日 がずれずに、入力できるそうなのですが、どのようにabボタンを使い フォームを使って、テンプレートを作り、第三者が入力していけばいいのでしょうか?教えてください。

  • プルダウンとチェックボックスの連動

    はじめましてよろしくおねがいします。 やりたいことはプルダウンのメニューの中身を活性したり非活性に したいのですが、どのようにやるのか想像がつきません。 以下にソースを貼り付けました。 チェックボックスにチェックされた場合はメニューの中身の■Yahoo!をリンクさせない様にしたいです。 チェックが外れたときはメニューの中身はすべてリンクで表示します。 現状はすべてリンクしかできていないです。 チェックボックスとの連動の方法、メニューの中の非活性の方法を教えてください。よろしくおねがいします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- // プルダウンメニュー flag = false; function pullDown() { if(flag) ID.style.visibility = "hidden"; else ID.style.visibility = "visible"; flag = !flag; } //--> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff"> <A href="javaScript:pullDown()">メニューを表示する</A><BR> <DIV id="ID" style="position:absolute;visibility:hidden;"> <A href="http://www.yahoo.co.jp/">■Yahoo!</A><BR> <A href="http://auctions.yahoo.co.jp/">■Yahoo! Auctions</A><BR> </DIV> <BR><BR><BR><BR><BR><BR> <FORM> <INPUT TYPE ="checkbox">ここにチェックを入れるとプルダウンの■Yahoo!のみ非活性にしたい。 </FORM> </BODY> </HTML>

専門家に質問してみよう