フォーム全体の入力等を禁止する


動作ブラウザ 【 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 - - - - - - - - - - × × -

ポイント len = document.myFORM.elements.length; for (i=0; i<len; i++) document.myFORM.elements[i].disabled = flag;
説  明 フォームのテキストフィールドの入力を無効にするにはdisableプロパティにtrueを指定します。再度入力を許可するにはfalseを指定します。フォーム全体を設定するためにフォーム内に含まれているエレメントの数を求める必要があり、「document.myFORM.elements.length」でエレメント総数を取得できます。これで取得したエレメント数分だけfor命令で繰り返し処理を行い全てのエレメントのdisableプロパティに値を設定します。
サンプル <html> <head> <title>フォーム全体の入力等を禁止する </title> <script Language="JavaScript"><!-- function setForm(flag) { len = document.myFORM.elements.length; for (i=0; i<len; i++) document.myFORM.elements[i].disabled = flag; } // --></script> </head> <body> <form name="myFORM"> <input type="text" name="myTEXT"><br> <input type="button" value="ぼたん"><br> <input type="checkbox">チェックボックス<br> <input type="radio">ラジオボタン<br> <textarea>テキストエリア</textarea> </form> <a href="javaScript:setForm(true)">入力禁止</a><br> <a href="javaScript:setForm(false)">入力許可</a><br> </body> </html>
補足説明 Macintoshでは"true"、"false"のように文字列を指定しても動作しますが、Windowsではtrue、falseの真偽値を代入しないと動作しません。また、禁止にした場合はデータが送信されません(項目名も送信されません)。

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

写真素材 PIXTA