セレクトメニューで指定しないとテキストフィールドが有効にならないようにする(複数版:大量&名前+番号)


動作ブラウザ 【 IE:4.0  NN:6.0
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows × - × × × × - × -
Macintosh × - × × × × - -
UNIX - - - - - × × × × - - -
Dreamcast - - - - - - - - - - × × -

ポイント n = document.myFORM.mySEL.selectedIndex; flag = eval(document.myFORM.mySEL.options[n].value); for (i=1; i<6; i++) document.myFORM["etc"+i].disabled = flag;
説  明 セレクトメニューで指定しないとテキストフィールドが有効にならないようにするにはテキストフィールドのdisabledプロパティにtrueまたはfalseを設定します。セレクトメニューで選択された項目のvalueを調べdisabledプロパティに入れることでテキストフィールドへの入力の禁止/許可を指定できます。項目のvalueは文字列になってしまうためブラウザによってはeval()で評価を行った後にdisabledプロパティに代入しないと動作しない場合があります。処理すべきテキストフィールドが多い場合は名前+番号で禁止するテキストフィールド名を指定するようにします。
サンプル <html> <head> <title>セレクトメニューで指定しないとテキストフィールドが有効にならないようにする(複数版:大量&名前+番号)</title> <script Language="JavaScript"><!-- function setTF() { n = document.myFORM.mySEL.selectedIndex; flag = eval(document.myFORM.mySEL.options[n].value); for (i=1; i<6; i++) document.myFORM["etc"+i].disabled = flag; } // --></script> </head> <body> <form name="myFORM"> <select name="mySEL" onChange="setTF()"> <option value="true">選択不可</option> <option value="false">選択可能</option> </select> <br> その他(1):<input type="text" name="etc1" disabled> その他(2):<input type="text" name="etc2" disabled> その他(3):<input type="text" name="etc3" disabled> その他(4):<input type="text" name="etc4" disabled> その他(5):<input type="text" name="etc5" disabled> </form> </body> </html>
補足説明 なし

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA