- ベストアンサー
form内のinputタグのみロックする方法
早速ですが質問いたします。 JavaScriptでform内のinputタグのみロックさせたいのですが、そんなことは可能でしょうか? JavaScriptについて初心者ですので、ご教示のほど、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
inputタグのみロックすると言う意味が少々つかみにくいところがありますが、Javascriptからは、document.forms["form要素のname"].elements["フォーム部品のname"]というプロパティを参照すれば、特定のフォーム部品にアクセスすることができますので、これを利用してやれば良いと思います。 具体的には、 document.forms["form1"].elements["input1"].disabled= true; と言う処理で、name属性にform1と言う値をもつフォーム内の、name属性にinput1と言う値をもつフォーム部品を使用不可にすることができます。 もし、その特定のフォームに含まれるフォーム部品を、一度にすべて使用不可にしたい場合は、 for (i=0; i<document.document.forms["form1"].elements.length; i++){ document.forms["form1"].elements[i].disabled= true; } と言う処理を走らせれば、一挙にすべてのフォーム部品を使用不可にできます。 特定の種類のフォーム部品のみをまとめて使用不可にしたい場合は、document.forms["form1"].elements["input1"].typeでそのフォーム部品のtypeを取得できますので、それを利用して使用不可にする要素を振り分けることができます。 下記は、type="text"のinput要素のみをすべて使用不可にする処理です。 for (i=0; i<document.document.forms["form1"].elements.length; i++){ if (document.forms["form1"].elements[i].type=="text"){ document.forms["form1"].elements[i].disabled= true; } } こういった処理をJavaScriptの処理の中に織り込めば、ご希望の動作になるのではないかと思います。 参考になれば…
その他の回答 (1)
- spnk55
- ベストアンサー率29% (11/37)
DOMを使って、inputタグの数だけfor文でまわして、 inputタグを使用不可にするやり方でどうでしょうか? IEやNNで動作OKと思いますが、DOMに対応していない 古いブラウザバージョンだとNGですね・・・。 function Func(){ for(i=0; i<document.getElementsByTagName("input").length; i++){ document.getElementsByTagName("input")[i].disabled="true"; } }