• ベストアンサー

入力フォームでdisabledによる入力制限

プルダウンをdisabledで制御しようと思っています。 yearを選択するまでmonthを無効にしたいのですが、うまくいきませんでした。 下記の簡略化したソースでも動作しませんでした。 テストでwindow.openを入れると動作するので、document...の文かとは思うのですが。 どなたかお気づきでしたら、お教え下さい。 よろしくお願い致します。 <html> <head> <title>inputtest</title> <SCRIPT LANGUAGE="JavaScript"> function menu_ctrl(){ var sel_num = document.sel_inp.year.selectedIndex; if(sel_num == 0){ document.sel_inp.month.disabled = false; // window.open("http://www.google.co.jp/"); } } </SCRIPT> </head> <body onload="menu_ctrl()"> <form name="sel_inp"> <select name="year" onchange="menu_ctrl()"> <option value="00" style="color:#AAAAAA">null</option> <option value="01">2007</option> <option value="02">2008</option> <option value="03">2009</option> </select> <select name="month"> <option value="00" style="color:#AAAAAA">null</option> <option value="01">1</option> <option value="02">2</option> <option value="03">3</option> </select> </form> </body> </html>

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

  • ベストアンサー
  • wangkp
  • ベストアンサー率25% (9/35)
回答No.1

最初画面表示するとき、入力が禁止されてなかったのせい。 下記のように、 <html> <head> <title>inputtest</title> <SCRIPT LANGUAGE="JavaScript"> function menu_ctrl() { var sel_num = document.sel_inp.year.selectedIndex; if (sel_num ==0) { document.sel_inp.month.disabled = true; } else { document.sel_inp.month.disabled = false; } } </SCRIPT> </head> <body onload="menu_ctrl()"> <form name="sel_inp"> <select name="year" onchange="menu_ctrl()"> <option value="00" style="color:#AAAAAA">null</option> <option value="01">2007</option> <option value="02">2008</option> <option value="03">2009</option> </select> <select name="month"> <option value="00" style="color:#AAAAAA">null</option> <option value="01">1</option> <option value="02">2</option> <option value="03">3</option> </select> </form> </body> </html>

yamaps
質問者

お礼

ご回答ありがとうございます。 実は、disabledの効果を逆に覚えていました。 私の勘違いです。 すいません。 迅速なご対応で、非常に助かりました。 ありがとうございます。

その他の回答 (1)

  • garaogu
  • ベストアンサー率40% (67/166)
回答No.2

こんにちは disabled の使い方が、逆になってます。 以下のようにすれば、良いと思いますよ。 <SCRIPT LANGUAGE="JavaScript"> function menu_ctrl(){ var sel_num = document.sel_inp.year.selectedIndex; if(sel_num == 0){ document.sel_inp.month.disabled = true; // window.open("http://www.google.co.jp/"); } else { document.sel_inp.month.disabled = false; } } </SCRIPT>

yamaps
質問者

お礼

ご回答ありがとうございます。 disableはtureで無効に、falseで有効にするのですね。 逆に覚えていました。 検証に何時間かかけて、原因が勘違いとは。 非常に助かりました。 ありがとうございます。

関連するQ&A

専門家に質問してみよう