• ベストアンサー

チェックボックスを複数選択したら文字を表示したい

フォームを作っています。チェックボックスがいくつかあるのですが特定のボックスをクリックしたら、別のテキストエリアにメッセージを表示したいのですが、可能ですか? たとえば、ボックスA~Gのうち、BとDが選択されたら、"etc"というテキストエリアに「ようこそ」と表示する。 できれば、ボックスを選択しただけで、表示してくれると最高にうれしいのですが。 ぜひ教えてください。

noname#126483
noname#126483

質問者が選んだベストアンサー

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

>BとDが選択されたら、"etc"というテキストエリアに「ようこそ」と表示する。 選択が外れた場合は、消すのでしょうか? <script> function check(obj){ var f=obj.form; f.elements["etc"].value=(f["B"].checked && f["D"].checked)?"yokoso":""; } </script> <form> <p> A:<input type="checkbox" name="A" /> B:<input type="checkbox" name="B" onclick="check(this)" /> C:<input type="checkbox" name="C" /> D:<input type="checkbox" name="D" onclick="check(this)" /> E:<input type="checkbox" name="E" /> F:<input type="checkbox" name="F" /> G:<input type="checkbox" name="G" /><br /> ETC:<textarea name="etc"></textarea> </p> </form>

noname#126483
質問者

補足

babu_babooさん、yambejpさん、ありがとうございます。 yambejpさんの言われる通り、選択が外れた場合、表示を消したいので、yambejpさんの文を参考にさせていただこうかと思います。 実は、全ての入力が完了後、 <INPUT TYPE="button" VALUE="送 信" onClick="return check();"> <INPUT TYPE="reset" VALUE="やり直し" onClick="ResetForm();"><br /> が入れてあり、情報をメール送信する様にしてあるのですが、この"送 信"を使っているのですが、ボタンを押しても反応しなくなってしまいました。 ちなみに"やり直し"は全ての入力内容が正しく消えます。 なにか、追加する事があるのでしょうか。

その他の回答 (9)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.10

No4です。 >function check(obj){ ・・・ → checkをcopyに変更し~ そうなるのではないかと想像して、書いたつもりだったんだけど…?

noname#126483
質問者

補足

そういう事でしたか・・・ 理解不足ですみませんでした。 皆様、どうもありがとうございました。

回答No.9

さらっとながめてたんだけど /* 取消しボタン押下時の初期化処理 */ function ResetForm() {  ~  lag = false;//←ここがきになる!  ~ } flag = false なのではなかろうか?

noname#126483
質問者

補足

できました!!でもこれでいいのでしょうか? 最初に教えていただいた、 function check(obj){ ・・・ → checkをcopyに変更し、 以下もcopy(this)に変更しました。 B:<input type="checkbox" name="B" onclick="check(this)" /> D:<input type="checkbox" name="D" onclick="check(this)" /> そしたら、動作しました。

回答No.8

ついでにHTMLも! もう<form></form>のなかだけでいいよ!たぶん^^;

noname#126483
質問者

補足

それが・・・ これもやたらめったら長くて・・・ この規定文字数におさまらないんです・・・どうしよう・・・

回答No.7

こーどをぜんぶみせてもらったほうが、めいかいなかいとうが つきやすいとおもふ。 ちぇっくぼっくすのぷろぐらむと、そうしんまえちぇっくのぷろぐらむが いっしょになってる?とか

noname#126483
質問者

補足

長くなってすみません。 以下の様なやつです。よろしくお願いいたします。 <script Language=javascript> <!-- /* 送信前確認メッセージ */ flag = false; function check(){   if(window.confirm('送信します! よろしいですか?')){ // 確認ダイアログを表示 //if (flag) { alert("このデータは、既に送信済みです。送信をキャンセルしました"); return false; } //flag = true; document.RequestForm.submit(); return true; }else{ window.alert('キャンセルしました'); return false; } } /* ページ読込み処理:有効/無効チェック */ function LoadFunc() { var chk1 = document.getElementsByName("henko"); var o = document.getElementsByName("henko_item"); var i; var len = o.length; if (chk1[0].checked == true) { for(i=0;i<len;i++) { o[i].disabled = false; } } else { for(i=0;i<len;i++) { o[i].checked = false; o[i].disabled = true; } }  TelChk(); } /* 別の宛先の表示/非表示 */ function show(inputData) { var objID=document.getElementById( "layer_" + inputData ); var buttonID=document.getElementById( "category_" + inputData ); if(objID.className=='close') { objID.style.display='block'; objID.className='open'; document.RequestForm.Tel_chk.checked = true }else{ objID.style.display='none'; objID.className='close'; document.RequestForm.Tel_chk.checked = false } } /* 取消しボタン押下時の初期化処理 */ function ResetForm() { var chk1 = document.getElementsByName("henko"); var o = document.getElementsByName("henko_item"); var i; var len = o.length; for(i=0;i<len;i++) { o[i].checked = false; o[i].disabled = true; } lag = false; var objID=document.getElementById( "layer_1" );  objID.style.display='none';  objID.className='close'; } /* 電話Noの自動コピー */ function TelCopy() { var TelTemp = document.RequestForm.Tel.value; TelTempDim = TelTemp.split("-"); document.RequestForm.Tel_1.value = TelTempDim[0]; document.RequestForm.Tel_2.value = TelTempDim[1]; document.RequestForm.Tel_3.value = TelTempDim[2]; } /* 相違のチェック確認 */ function TelChk() { var objID=document.getElementById( "layer_1" ); if (document.RequestForm.Tel_chk.checked) { //alert(document.RequestForm.Tel_chk.checked); //TRUE :checkされている時 objID.style.display='block'; objID.className='open'; } else { //False:checkされていない時 //alert(document.RequestForm.Tel_chk.checked); objID.style.display='none'; objID.className='close'; } } /* etcへのテキスト追加確認 */ function check(obj){ var f=obj.form; f.elements["etc"].value=(f["b"].checked && f["d"].checked)?"おはよう":""; } //--> </script>

回答No.6

ちなみに if (40 === ptn) document.getElementsByName('etc')[0].value ='おは~'; を document.getElementsByName('etc')[0].value = (40 === ptn) ? 'おは~': ''; にするといいかも?

noname#126483
質問者

補足

こんな事が参考になるのかどうかわかりませんが、 /* 送信前確認メッセージ */ の、記述の前に教えてもらったものを加えると、"b"と"d"のチェックボックスをクリックすると送信メッセージが表示されました。 他のチェックボックスでは表示されません。

回答No.5

flag = false; function check(){  if (flag) {   alert("このデータは、既に送信済みです。送信をキャンセルしました");  } else {   flag = window.confirm('送信します! よろしいですか?');   if (! flag) alert('キャンセルしました');  }  return flag; } そうしんされない?どこかでflagがtrueになってるのかな? ぐろ~ばるへんすうだからなぁ~~

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.4

おまけで… >onClick="return check();" のcheck()は内容チェックのためのファンクションで、No1様のcheck(obj)と違う場合は、名前がかぶらないように注意。 もし、同じものを呼びたいのであれば(同じものなら、呼ぶ必要はないと思うが)、引数をセットしてあげる必要がある。 まぁ、returnを指定しているのだから、別のファンクションなんだと思うが…

回答No.3

<INPUT TYPE="button" VALUE="送 信" onClick="return check();"> するんじゃなくて~~~ぇ~~~ぇ~、 <INPUT TYPE="submit" VALUE="送 信"> にして <form onSubmit="return check();"> に、すれば~~~~ぁ~~ぁ、 なんだかいけそうなきがする~~~?  ばぶ~

noname#126483
質問者

補足

だ、だ、駄目でした~ 付け足し付け足しで申し訳ありません。 実行後に以下のチェックが入っていました。 /* 送信前確認メッセージ */ flag = false; function check(){   if(window.confirm('送信します! よろしいですか?')){ // 確認ダイアログを表示 //if (flag) { alert("このデータは、既に送信済みです。送信をキャンセルしました"); return false; } //flag = true; document.RequestForm.submit(); return true; }else{ window.alert('キャンセルしました'); return false; } }

回答No.2

びっとしふとをつかうってのはどうかな?ばぶぅ~! <form> <p onClick=" var chk = this.getElementsByTagName('INPUT'); var cnt = 0; var obj; var ptn = 0; while (obj = chk[cnt++]) if ('checkbox' === obj.type) ptn = ptn << 1 | obj.checked; if (40 === ptn) document.getElementsByName('etc')[0].value ='おは~'; "> A(64):<input type="checkbox" name="A"> B(32):<input type="checkbox" name="B"> C(16):<input type="checkbox" name="C"> D(8):<input type="checkbox" name="D"> E(4):<input type="checkbox" name="E"> F(2):<input type="checkbox" name="F"> G(1):<input type="checkbox" name="G"> </p> ETC:<textarea name="etc"></textarea> </form>

関連するQ&A

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

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

  • チェックボックスの配置順にテキストボックスに表示

    accessのフォームにチェックボックスを配置し チェックされたものをテキストボックスに表示させています。 ■A ■B □C □D ■E となっていたら、テキストボックスに A B E と表示させています。 チェックボックスの真ん中に新しくチェックボックスを追加すると テキストボックス内には、追加したものが最後に表示されていまいます。 ■A ■B □C ■Z □D ■E とすると、テキストボックスには A B Z E と表示させたいのに A B E Z 表示されてしまいます。 いちから順番どおりに作り直せばいいのですが かなりたくさんチェックボックスがあるうえに 上司から、この先も何度も作り直しを指示されそうです・・・。 できれば簡単に、配置した順にテキストボックスに表示されるようにしたいです。 チェックボックスの配置順に テキストボックスに文字を表示させる方法を教えてください!

  • チェックボックスを選択するとテキストボックスが表示

    質問失礼します。 チェックボックスが下記のようにある場合ですが、 どれかではなく複数選択で テキストボックスを表示させるにはどうしたらよいでしょうか? <input type="checkbox" name="example" value="" />テレビ ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />新聞 ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />CM ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />その他 ←チェックしたらテキストボックス表示 色々なJavaScriptを試したのですが、 どうも挙動がおかしく、クリックを続けると表示がされたりできなかったり、 という具合になります。 それぞれテキストボックスを表示させたいチェックボックスに 反映できるJavaScriptをご教示願いますでしょうか? 宜しくお願い致します。

  • サーブレット 選択されたチェックボックスの表示について

    こんにちわ。 独学でサーブレットの勉強をしています。 チェックボックスで、どのチェックボックスをを選択したかを表示したいのですが、ネットや参考書を見てもよくわかりません。 イメージとしては、 □A □B □C □D □E とあってBを選択したら、ブラウザに 選択結果 B 2番目がチェックされました。 こんな感じで表示させたいです。 自分ではBの部分までは表示させうことができました。 よろしければ、アドバイスをお願いします。

    • ベストアンサー
    • Java
  • 選択したチェックボックスのみチェックを入れたいのですが

    Access2000で作成したフォームの チェックボックスが、どれか一つ チェックを入れると、すべてに チェックが入ってしまいます。 また、どれか一つ解除をすると、 すべてが解除されてしまいます。 デザインビューでこのフォームを 開いた時は、チェックボックスと それに関連したテキストボックスは 一レコード分(一行)だけ表示されており、 フォームビューで開いた時は、 データが増えていくにつれ、 何レコード分も表示されます。 初心者ですので、どなたか よいアドバイスをください。 宜しくお願いいたします。

  • チェックボックスの内容をテキストボックスに表示

    フォームにチェックボックスをいくつか作成しました。 チェックした内容をテキストボックスに羅列して表示するには どうしたらいいのでしょうか? □A □B □C ・ ・ ・ とあり、AとCにチェックを入れたら テキストボックスに「A C」と表示させるようにしたいです。 お願いいたします!

  • Accessのチェックボックス

    こんにちは。AccessのVBAについてお教えください。 下記URLに質問内容の画像を配置しました。 http://kie.nu/tli フォーム1にテキストボックス1というコントロールを配置しました。テキストボックス1に名簿IDの数値を入力して、ボタン1をクリックします。 もしチェックボックス1に既にチェックが入っていたらメッセージ「チェックが既に入っています。」といったメッセージを表示したいと思います。 そこで、ボタンを押した時に、 If フォーム1!サブフォーム1!チェックボックス1.Value = -1 Then msgbox "チェックが既に入っています。" end if とやりましたが、うまく動きません。どうやれば、うまく動くようになりますかご教授頂けませんでしょうか。よろしくお願いいたします。

  • マクロ フォームでのチェックボックスについて

    教えてください。 1)フォームでテキストボックス2つ、ボタンで新しい入力フォーム表示 2)入力フォームでチェックボックス6個、コンボボックス6個を作ります。 3)チェックボックスにチェック(1個のみ)したら、1)のフォームのテキストボックスにチェックされた、項目とコンボボックスで選択された内容が転記したい。 例)果物にチェック、コンボでブドウと選択  テキストボックス→果物 ブドウ というようにフォームに転記させたい。 以前、シートでのマクロを教えていただきましたが、フォームだと頭が混乱してしまいました。 簡単で良いので、マクロの記述を教えてください。

  • JAVA?チェックボックスについて

    DBが使えないHTMLのみのローカル環境です。 ちょっとした業務の切り分けにHTMLを使いたいのです。 チェックボックスが4つあるとします。 そのうち一つをチェックすると、それに適応したチェックボックス4つが下部にあたらしく表示され、 さらにそのチェックボックスから一つ選択すると、 下部のテキストエリアに適応した文章が表示される、というようなものは可能ですか? テキストエリアに反映させる際にボタン押下が必須ならそれでも問題ありません。 (押下の手間がなければ、それが一番ではありますが) ある程度は理解しているのですが、お助けください。 できれば、チェックボックスを選択しなおすと結果がリセットされてやり直せるとうれしいです。 不可能だ!というならそういうお答えでもかまいません。 まったくもって、不可能かどうかもわからないので… 宜しくお願いいたします。

  • テキストボックスの内容でチェックボックスの既定値

    下記質問の続きです。 http://okwave.jp/qa/q8186736.html Accessで、 チェックボックスにチェックを入れることで テキストボックスに文字を表示させています。 そのフォームをいったん閉じると、 テキストボックスには 前回チェックボックスで入力した文字が反映されているのですが チェックボックスのチェックがすべて外れてしまっています。 フォームを開いたとき、 テキストボックスの内容によって、 配置したチェックボックスにチェックを入れたいです。 テキストボックスに 「A C」 と入っていたら ■A □B ■C □D □E としたいです。 (開いたあとは、また別の所にチェックを入れたり外したりします) チェックボックスのプロパティ「既定値」のところに IF([テキストボックス] like "*"&"A"&"*",ture,false) などとしてみたのですがうまういきませんでした。 ご教授お願いいたします!

専門家に質問してみよう