• ベストアンサー

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

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

  • aw11
  • お礼率68% (30/44)

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

  • ベストアンサー
  • 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

  • tableタグについて

    tableタグの挙動について教えてください。 下記のタグで、tableの幅は240pxにしたいのですが、 ブラウザ表示(Chrome)では230pxとなりました。 この10pxの隙間はどこで発生しているのでしょうか? どうぞよろしくお願いします。 ーーーーHTMLーーーーー <body style="width:240px;margin:0 auto;"> <div class="list-box"> <table width="240" border="0" cellspacing="0" cellpadding="0"> <tbody><tr> <td>テキスト/td> <td>テキスト/td> </tr> </tbody></table> </div> </body> ーーーーCSSーーーーー .list-box{margin:0 auto;} .list-box table{ width:100%;} .list-box table td:first-child{ background:#900;} .list-box table td:last-child{ background:#069;}

    • ベストアンサー
    • CSS
  • JavaScriptでできない事があるのでお願いします。

    JavaScriptをしようして、 ━━━━━━━━━━┳━━━━━━━━━━━━━  フレーム1       ┃フレーム2   ┌──┐       ┃┌─────────┐   │ボタン│      ┃│  テキストボックス  │   └──┘       ┃└─────────┘                ┃                ┃ フレーム1でボタンを押したときにフレーム2のテキストボックスに、 文章(こんにちは)とかを入力したいのですが、ネットで検索できませんでした。 どなたか教えてください。お願いします。

  • 他のフレームにあるボタンを使用不可にするには?

    2つのフレームに分割した画面で、一方のフレームにあるボタンを押したら、他のフレームにあるボタンを使用できなくしたいのですが、うまくいきません。下記のスクリプトでは、エラーになってしまいます。どのようにしたら良いでしょうか、よろしくお願いいたします。 <フレームの設定> <html> <head><title>フレームを縦に分割する</title></head> <frameset cols="50%,50%"> <frame src="left.html" name="light_frame" frameborder=1 border=1> <frame src="right.html" name="left_frame" frameborder=1 border=1> </frameset> </html> <left.htmlの内容> <html> <head> </head> <body> <form name="myform"> <input type="button" name="bt_del" value="削除"> </form> </body> </html> <right.htmlの内容> <SCRIPT Language="JavaScript"> function func1(){ //NG parent.left_frame.document.form.myform.bt_del.disabled = true; //これもNGでした //parent.left_frame.document.forms['myform'].bt_del.disabled = true; } </SCRIPT> <html> <head> </head> <body> <p><input type="button" value="変更" onclick="func1()" > </body> </html> 以上です。

  • ラジオボタンで入力項目の可・不可を切り替える方法

    雑誌やネットを調べ、ラジオボタンで入力項目の可・不可を切り替える JavaScriptを見つけたのですが、思うように動作しません。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>Sample</title> <script type="text/javascript"> <!-- function radioChange() { if(document.form1.radioSelect[0].checked == true) { document.form1.04text.disabled = false; document.form1.04text.style.backgroundColor='#FFFFFF'; document.form1.05text.disabled = false; document.form1.05text.style.backgroundColor='#FFFFFF'; document.form1.06text.disabled = false; document.form1.06text.style.backgroundColor='#FFFFFF'; document.form1.07text.disabled = true; document.form1.07text.style.backgroundColor='#D4D0C8'; document.form1.08text.disabled = true; document.form1.08text.style.backgroundColor='#D4D0C8'; document.form1.09text.disabled = true; document.form1.09text.style.backgroundColor='#D4D0C8'; } else if(document.form1.radioSelect[1].checked == true) { document.form1.04text.disabled = true; document.form1.04text.style.backgroundColor='#D4D0C8'; document.form1.05text.disabled = true; document.form1.05text.style.backgroundColor='#D4D0C8'; document.form1.06text.disabled = true; document.form1.06text.style.backgroundColor='#D4D0C8'; document.form1.07text.disabled = false; document.form1.07text.style.backgroundColor='#FFFFFF'; document.form1.08text.disabled = false; document.form1.08text.style.backgroundColor='#FFFFFF'; document.form1.09text.disabled = false; document.form1.09text.style.backgroundColor='#FFFFFF'; } else { document.form1.04text.disabled = true; document.form1.04text.style.backgroundColor='#D4D0C8'; document.form1.05text.disabled = true; document.form1.05text.style.backgroundColor='#D4D0C8'; document.form1.06text.disabled = true; document.form1.06text.style.backgroundColor='#D4D0C8'; document.form1.07text.disabled = true; document.form1.07text.style.backgroundColor='#D4D0C8'; document.form1.08text.disabled = true; document.form1.08text.style.backgroundColor='#D4D0C8'; document.form1.09text.disabled = true; document.form1.09text.style.backgroundColor='#D4D0C8'; } } //--> </script> </head> <body onload="radioChange()"> <form action="" method="post" name="form1"> <table> <tr> <td> <input name="radioSelect" type="radio" onclick="radioChange()" value="1" /> 国内旅行 <input name="radioSelect" type="radio" onclick="radioChange()" value="0" /> 海外旅行</td> </tr> <tr> <td>&nbsp;</td> </tr> <tr> <td> 国内編:<br /> 希望地 <input type="text" name="04text" /> <br /> 希望日: <input type="text" name="05text" /> <br /> 乗り物: <input type="text" name="06text" /> </td> </tr> <tr> <td>&nbsp;</td> </tr> <tr> <td>海外編:<br /> 希望地 <input type="text" name="07text" /> <br /> 希望日: <input type="text" name="08text" /> <br /> 乗り物: <input type="text" name="09text" /> </td> </tr> </table> </form> </body> </html> テキストボックスの「name」を、英字から始めれば解決するのですが 事情があり、nameを数字で始める必要があります。 この解決方法を教えていただけませんでしょうか。 よろしくお願いいたします。

  • 別フレームのフォームへの入力で

    フレーム1(f1)のボタンを押すとフレーム2(f2)のテキストボックス(t1)に文章を入力するようにしたいのですが、 フレーム2のフォームに名前がついている時は(フォーム名はform1)、 parent.f2.form1.t1.value = "test"; で動作したのですが、フォームに名前がない場合に、 parent.f2.forms[0].t1.value = "test"; とした場合、「'parent.f2.forms.0'はNULLまたはオブジェクトではありません」とエラーが出てしまいます。 これを解消したいのですが、エラーの原因がわかりません。 教えてください。 よろしくお願いしますm(_ _)m

  • スタイルシートでのdisableまたはreadonlyプロパティの設定

    いつもお世話になっております。ちょっと困ってしまったのでみなさん どうぞお力をおかしください。 スタイルシートでIE ONLYで構わないのですが 書き込み不可プロパティのdisabledまたはreadonlyを設定する方法は ありますか? 具体的にいうと <style> input{background-color:silver;disabled:true} </style> のようにすると全テキストボックスが書き込み不可になるとか。 javascriptで制御もしようとおもえば出来ますが一変に変えてやりたいのです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • フォーム要素を編集不可にする方法

    テキストボックス、ラジオボタン、チェックボックスなどのフォーム要素を入力できないようにし、且つサーバにはパラメータが送られるようにしたいのですが可能でしょうか? テキストボックス、テキストエリアではreadonly属性を指定すれば可能だと思いますが、その他のチェックボックスなどは方法が分かりません。 disabled属性を指定するとサーバにパラメータが送信されないので駄目なのです。 送信時にJavaScriptでdisabled指定をはずす案もありますが、JavaScriptがOFFでも対応できる方法がBESTです。 宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • JavaScriptでとても簡単なことだと思うのですが…

    どういう風に検索かければ言いかわかりませんでした。 フレーム1と2に分けて、フレーム1でボタンを押すとフレーム2のテキストボックスの中に文字を入力する。という物を作っています。 下記はフレーム1の内容の一部です。本当に簡単な質問だとおもいます。 <frame> <input type="button" value="ボタン1"onclick="window.parent.frame2.document.getElementById('txt1').value='おはようございます。'"> </frame> <frame> <input type="button" value="ボタン2"onclick="window.parent.frame2.document.getElementById('txt2').value='おやすみなさい。'"> </frame> この場合ボタンが二つ表示されるのですが、ここをボタンひとつでこの二つの処理を同時に実行させたいのです。 お力お貸しください。

  • INPUTタグ disabledでテキストの色を通常の黒に

    HTMLのテキストボックスで、コピーは可能で、入力不能の状態にしたい。 (計算式の答えをボタン入力で入れるため) そのため、INPUTタグでdisabledにした。 reasonlyだと、コピーが出来ないため。 ただ、disabledだと、文字が灰色になってしまいます。 それを防ごうと、styleオプションで、文字色をしようとしたがうまくいきません。(colorなどで) 方法を教えてください。 (javascriptしか、無理な場合は、ソースを教えてください)

    • ベストアンサー
    • HTML
  • JavaScriptのフレームの中のテキストについて

    JavaScriptでフレームをつくります。 フレーム1でボタンを押すと、フレーム2のテキストボックスの中に文字を入力させたいのですが可能ですか? お願いします。

専門家に質問してみよう