• ベストアンサー

<JavaScript>tableタグを入力不可にしたい。

こんにちわ。 タイトルのままなのですが、JavaScriptでtableタグのdisabled制御を行いたいのですがうまくできません。 例えば、テキストボックスの場合なら、 parent.fraXXX.txtXXX.disabled=true; (フレーム区切りされている。制御をするのはボタンが押されたフレームとは別のフレームのテキストボックス。) って、感じでできるのですが、tableタグだとうまくできません。 parent.fraXXX.tblXXX.disabledと書いても、parent.fraXXX.tblXXX自体で参照できずエラーになります。どう指定すればいいのでしょうか?そもそもできるのでしょうか? ネットで探してみましたが、うまくいかずです… かなり初心者な質問ですみません…未経験&突発な修正でまいっております。お助けください。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.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)
回答No.2

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)
回答No.1

tableは、フォームではないので、disabled属性はないと思います。 入力不可にしたいというのがよくわかりません。 textarea等で<table>タグの入力チェックあるいは禁止がしたいということでしょうか?

aw11
質問者

補足

>BLUEPIXYさん 試しにtableタグにdisabledを書いて頂ければ、やりたいことはわかってもらえると思うのですが… tableタグにdisabled属性をつけると、tableタグ内部のinputタグが全てdisabledの状態になります。つまり、table内部のinputタグが全て入力できない状態(無効化といってもかまいません)ですね。その状態にjavascriptを使ってしたいのですが…。 ちなみにhtmlレベルで、tableタグ内にdisabled属性を書くとそうなることは確認済みです。 よろしくお願いします。

関連するQ&A