• ベストアンサー

ドロップダウンメニューとsubmitボタンを無効化したい

http://www3.ocn.ne.jp/~kmitoh/dougu/kanzan/kanzan.html 例えば、この換算プログラムはラジオボタンで何もcheckedになってませんよね。 最初にラジオボタンでなく、ドロップダウンメニューから何か選択すると IEがスクリプトエラーとなってしまいます。 このデバックに挑戦中です。 まず、これら2つのテキストボックスと2つのドロップダウンメニューを 使えないように(disabledに)する関数を設け、HTML側を <body onload="function()">として呼びだしてみたのですが、 他のラジオボタンを押したとき、disabledが解除されなくなってしまいます。 また、何もラジオボタンが選択されていない状態で「計算」を押下しても エラーになることにも気づきました。 「計算」ボタンもdisabledにしたいのですがその方法がわからず (submitボタンにidを振るとサポート外だとエラーになってしまう)、 ドロップダウンメニューだけを殺せても意味がないことに気づきました。 ならばと、 ページを呼び出した時、デフォルトで「長さ」にチェックを入れ、 最初から長さに対応したドロップダウンメニューをセットさせればよいかと、 HTML側を <INPUT TYPE="radio" NAME="rgroup" onClick="nagasa(this.form)" checked> とし、最初に <body onload="nagasa()">や <body onload="nagasa(ts)">など試してみたのですが、 前者は、bbがnullまたはオブジェクトでない と、 後者は、tsは宣言されていない などとなります。 最もスマートな解決方法を目指したいのですが、どうしたらよいでしょうか。 他にもっといい考え方/技術はきっとあると思いますが。。。 よろしくお願い致します。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

><body onload="nagasa()">や ><body onload="nagasa(ts)">など試してみたのです 関数nagasaが受け取りたいのは、フォームオブジェクトですから、フォームを渡してやらないとダメです。 <FORM name="FORM1">とかして <body onload="nagasa(FORM1)"> としてやればいいかと思います。

litton101
質問者

お礼

BLUEPIXYさん、ありがとうございます。 無事うまくできました。 なかなかjavascriptの(というよりオブジェクト指向というのでしょうか?)感覚がつかめず、四苦八苦です。

その他の回答 (1)

  • Seiryo
  • ベストアンサー率13% (27/203)
回答No.1

><body onload="nagasa()">や ><body onload="nagasa(ts)">など試してみたのですが、 > >前者は、bbがnullまたはオブジェクトでない と、 >後者は、tsは宣言されていない などとなります。 が間違ってますね。

litton101
質問者

お礼

Seiryoさん、ヒントありがとうございます。 解決策は上記で示していただいたとおりでしたが 引き続き勉強したいと思います。

関連するQ&A

  • ドロップダウンメニューのプログラムを教えて・・・

    今非常に困っています・・・。 プログラムのどの本を見てもドロップダウンメニューのプログラムが無いし、インターネットで検索してソースコードを貼ってみても、全然動きのあるドロップダウンメニューにならずに、単なる縦列横列のリンクになってしまい、ドロップダウンメニューを作れません。 今現在JavaScriptでドロップダウンメニューの着いた自分用のHPを作りたいと強く思っているのですが、下のようなプログラムの中にドロップダウンメニューを入れるためには、どのように入力したら良いのかご教授願えないでしょうか?。 非常に身勝手な質問とは承知しているのですが、画像のイメージは添付ファイルの通りで、縦と横にそれぞれメニューが出てくるようにしたいです・・・。 ご回答をお待ちしております。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <title></title> <script language="JavaScript"> </script> <body> <form name=""> </form> </body>

  • サイドナビにドロップダウンメニューを設置したい

    サイドナビにドロップダウンメニューを設置したい サイドナビにマウスオーバーしたときにだけでるメニューボタンを設置しようと思っています。 ナビは縦に並んでいて、マウスオーバーした時に出るメニューも縦に並ぶようにしたいです。 ナビのボタンとボタンの間に出てきて、そのメニューが出ると下にあるナビとかぶらずに下のナビは位置がずれるようにしたいです。 説明下手ですみませんが、下記のようなイメージです。 【メニュー1】 【メニュー2】 【メニュー3】    ↓ 【メニュー1】  〔ドロップダウン1〕  〔ドロップダウン2〕 【メニュー2】 【メニュー3】 よろしくお願いいたします。

  • タブレットのドロップダウンメニューについて

    会社のWebの管理をしていますが、5年前に作ったサイトはJavaScriptを使ってドロップダウンにしました。 しかしタブレットではドロップダウンメニューが開かずページの遷移ができません。 メニューを修正してタブレットやスマホでもリンク先のページに遷移させるのにはどうしたら良いか教えて下さい。 商品のところはドロップダウンで20個程表示されます。 Webについてはほぼ素人でHTMLとCSSは独学で勉強し、JavaScriptは本やサイトのサンプルデータを使わせていただいていて、内容についてはあまり理解していません。 タブレットやスマホではそもそもドロップダウンメニューが使えないようなのですが。 サイトで検索しましたが、今一参考にできそうなサイトにたどりつけませんでした。 アドバイスよろしくお願いします。

  • ドロップダウンメニュー。

    個人でHPを運営しているのですが、 この度、フレーム機能とドロップダウンメニューを使用してページを製作しました。 ところが、メニューから項目を選んでクリックしてちゃんと表示されるのですが、クリックしても何も表示されない部分(メニューの中の最初の表示部分や、htmなど設定されていない部分)も何故か、何にもない真っ白なページが表示されてしまいます。 ドロップダウンメニューのソースはサンプルから頂いてきて、自分なりに何とか形になったのですが、上記のトラブルを解消するほどの知識がありません。 何卒、ご教授お願いいたします。 http://www003.upp.so-net.ne.jp/tochio-cinema/cinema_review.htm の右上にあるドロップダウンメニューです。 メニューの中の LAST UPDATEと、その下の6/26をクリックすると、下のフレームが真っ白になってしまいます。

    • ベストアンサー
    • HTML
  • HTMLのドロップダウンメニュー背景を画像にする方法

    HTMLのドロップダウンメニュー(プルダウンメニュー)背景に画像を適用する方法はございますか? 宜しくお願いします。

  • ドロップダウンメニュー2個以上

    同じページ内にドロップダウンメニューを2個以上おくと ステータスバーにエラー・・・とでてしまってリンク出来なくなります。 フレームは使っていません。 1個なら、ちゃんとリンクします。2個以上並べて使うことはできますか? OSは、WinXP HPを作ってる場所は、ジオシィテーズ(新)です。 メモ帳で作っています。

  • ドロップダウンメニューの位置調整ができません

    body設定は以下の通り body{ margin: 0; padding: 0; text-align: center;    ~   min-width: 900px; } このbodyにナビゲーションを設置して ドロップダウンメニューを配置しようとしていますが位置合わせができずに困っています 基本的な質問ですが、教えて下さい サブメニュー(ドロップダウンメニュー)のsccの記載は以下のように記載しました div#subMenu01 {position:absolute; top: 100px; left: 75px;} div#subMenu02 {position:absolute; top: 100px; left: 150px;} 結果、body枠からでなく、ブラウザ枠からの75px,150pxになってしまいます。 position:relativeにしても上下位置は変わりますが左右は変化しません。 どうしたらbody内で位置調整できるのでしょうか?

    • 締切済み
    • CSS
  • チェックボックスのON/OFFに連動してラジオボタンのdisabledを解除

    下記の動作をする checkfunc(); の書き方をご教示ください. <html> <head> <script type="text/javascript"> checkfunc() </script> </head> <body> <form name="myform"> <input type="checkbox" name="yesno" value="1">チェックボックス <input type="radio" name="rdo1" value="0">ラジオボタン0 <input type="radio" name="rdo1" value="1">ラジオボタン1 <input type="radio" name="rdo1" value="2">ラジオボタン2 <input type="radio" name="rdo1" value="3">ラジオボタン3 <input type="radio" name="rdo1" value="4">ラジオボタン4 </form> </body> </html> (1) このHTMLのラジオボタン5つは,最初は全てdisabledです. (2) チェックボックスがされたらラジオボタングループが有効になるようにしたいです. (3) 逆に,チェックが外れたらラジオボタンはdisabledに戻ります. (4) このjavascriptは,PHPファイルに組み込みますが.表示時にDBを読み込んでどれに  チェック/選択されていたかによって,checkboxやradioに「checked」を追記します.  その場合,enabled/disablesの関係に矛盾がないようにもしたいですが,  <body>に onload="checkfunc();" と入れればいいでしょうか? なお,IE以外のブラウザでも動作できると大変助かります.よろしくお願い致します.

  • 複数のラジオボタン選択肢によりsubmitを押せなくする

    初めて質問させていただきます。 ラジオボタンが下記の選択状態の時だけ「送信(submit)」ボタンを enable で表示させたいです。 1:● 2:○ 1:● 2:○ それ以外の選択肢では「送信(submit)」ボタンを disabl で押せないようにしたいです。 調べて、近い動作にはなりましたが、javascriptに関して 殆ど知識がないため、これから先がさっぱりわかりません。 ぜひ教えを乞いたく参りました。お知恵をお貸しください<(__)> どうぞ宜しくお願い致します。 <HTML> <HEAD> <script type="text/javascript"><!-- function unlock1(el){el.form.send.disabled=false;} function unlock2(el){el.form.send.disabled=true;} //--> </script> <form> 1:<input type="radio" name="radio1" value="1" onClick="unlock1(this)"> 2:<input type="radio" name="radio1" value="2" onClick="unlock2(this)"><br> 1:<input type="radio" name="radio2" value="1" onClick="unlock1(this)"><br> 2:<input type="radio" name="radio2" value="2" onClick="unlock2(this)"><br> <input name="send" type="submit" value="送信" disabled > </form> </BODY> </HTML>

  • 選択肢によってラジオボタンを押せなくする(無効にする)

    2.7.2.の質問があって、ラジオボタンの選択肢(1~5まで)によって、 1を選択したら、2.7.2.1のみ選択、その他はラジオボタン押せなくする 、2を選択すると、2.7.2.2のみ選択、その他はラジオボタン押せなくする 、3を選択すると、2.7.2.3のみ選択、その他はラジオボタン押せなくする 4、5を選択すると、2.7.2.1、2.7.2.2、2.7.2.3、すべてを押せなくして、submitボタンを押して次へという処理をしたいのですが、下記のプログラムではまったく動作しません。 どこが悪いのでしょうか?お分かりの方教えていただけませんか? <script language="javascript"> <!-- function check(){ if(document.form1.BQ20[0].checked == true) { document.form1.BQ201.disabled = false; document.form1.BQ201.bgColor='#FFFFFF'; }else if(document.form1.BQ20[1].checked == true) { document.form1.BQ202.disabled = false; document.form1.BQ202.bgColor='#D4D0C8'; }else if(document.form1.BQ20[2].checked == true) { document.form1.BQ203.disabled = false; document.form1.BQ203.bgColor='#D4D0C8'; }else{ document.form1.BQ201.disabled = true; document.form1.BQ201.bgColor='#FFFFFF'; document.form1.BQ202.disabled = true; document.form1.BQ202.bgColor='#FFFFFF'; document.form1.BQ203.disabled = true; document.form1.BQ203.bgColor='#FFFFFF'; } } // --> </script> 以下省略