- ベストアンサー
<JavaScript>tableタグを入力不可にしたい。
こんにちわ。 タイトルのままなのですが、JavaScriptでtableタグのdisabled制御を行いたいのですがうまくできません。 例えば、テキストボックスの場合なら、 parent.fraXXX.txtXXX.disabled=true; (フレーム区切りされている。制御をするのはボタンが押されたフレームとは別のフレームのテキストボックス。) って、感じでできるのですが、tableタグだとうまくできません。 parent.fraXXX.tblXXX.disabledと書いても、parent.fraXXX.tblXXX自体で参照できずエラーになります。どう指定すればいいのでしょうか?そもそもできるのでしょうか? ネットで探してみましたが、うまくいかずです… かなり初心者な質問ですみません…未経験&突発な修正でまいっております。お助けください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>table内部のinputタグが全て入力できない状態に なるほど、やりたいことがわかりました。 そのtableを<form></form>で囲めば話は簡単です。 <form name="FORM1"> <table ID="TABLE_FORM"> <tr><td><input type="text" value="test1"></td></tr> <tr><td><input type="text" value="test2"></td></tr> </table> </form> の様になっている時 document.FORM1.disabled=true; で、そのフォームの部分をdisableできます。 あくまで、tableでやりたいということであれば、 tableにID名を付けて var table = document.getElementById("TABLE_FORM"); table.setAttribute('disabled',true,false) のようにすればできます。
その他の回答 (2)
- LancerVII
- ベストアンサー率51% (1060/2054)
No1さんのおっしゃる通り、定義のない属性に JavaScriptで参照するのは無理かと思います。 行いたいことがフォーム全体の無効化ということでしたら すべてのフォームオブジェクトに無効化の処理を行えば いいと思います。 例はあくまで例なのでテーブル内のフォームを指定する 等はうまく対応してください。 function inputClose () { // フォームの要素数を取得 var max = document.forms[0].length; // フォームの要素数分のループ for ( i = 0; i < max; i ++ ) { // フォームを無効化 document.forms[0].elements[i].disabled = true; } } 引数にtrueかfalseを持つようにしてdisabled属性をセットする 段階でそれをセットしてあげればボタンによって 全部を無効にする/全部を有効にするということも可能です。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
tableは、フォームではないので、disabled属性はないと思います。 入力不可にしたいというのがよくわかりません。 textarea等で<table>タグの入力チェックあるいは禁止がしたいということでしょうか?
補足
>BLUEPIXYさん 試しにtableタグにdisabledを書いて頂ければ、やりたいことはわかってもらえると思うのですが… tableタグにdisabled属性をつけると、tableタグ内部のinputタグが全てdisabledの状態になります。つまり、table内部のinputタグが全て入力できない状態(無効化といってもかまいません)ですね。その状態にjavascriptを使ってしたいのですが…。 ちなみにhtmlレベルで、tableタグ内にdisabled属性を書くとそうなることは確認済みです。 よろしくお願いします。