• ベストアンサー

指定したタグを書き換えるには?

document.all.tags("input")(1). を使って <form> <input> <input type="submit"> <input> <略> </form> の二番目のタグ<input type="submit">を書き換えるとします。 これを<input type="text" maxlength="200">に書き換えたり <input type="submit">を<textarea ごにょごにょ></textarea> に書き換えたりする方法はありませんでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • pick52
  • ベストアンサー率35% (166/466)
回答No.2

通常、エレメントオブジェクトを取得する場合、document.all.tags ではなく、document.getElementsByTagNameを使用した方がいいような 気がします。 あと、配列はパーレンではなくブラケットですよ。 var inp = document.getElementsByTagName('input')[1]; 下の方でIDを付与できないといっている理由は分かりませんが 順番が固定ならば以下のようにしてはどうでしょうか。 // 新しいエレメントを作成 var n_inp = document.createElement('input'); n_inp.type = 'text'; n_inp.maxLength = '200'; // 現在のエレメント取得 var inp = document.getElementsByTagName('input')[1]; // 新しいエレメントで古いエレメントを置き換える document.getElementsByTagName('form')[0].replaceChild(n_inp, inp); ただし、ブラウザなどの互換性を保証はしません。

idhokanohi
質問者

お礼

回答ありがとうございます! これを利用してがんばってみます メモ: var 新 = createElement(''); 新.属性 = '値'; 変更対象のエレメント取得 var 古 = 手段問わず; 親取得.replaceChild(A,B);//子要素のBをAにここではAに新Bに古

その他の回答 (1)

  • t032904
  • ベストアンサー率83% (5/6)
回答No.1

IDを利用するのはどうでしょうか。 ----JavaScript-------- function change(){ var id = "target"; document.all.item(id).innerHTML="<input type=\"text\" maxlength=\"200\">"; } ----body-------- <form> <input> <div id="target"> <input type="submit" value="submit"><br> </div> <input> </form> change()を呼び出すと、<div id="target">~</div>内が書き換わります。

idhokanohi
質問者

お礼

回答ありがとうございます。 ですが、事情がありまして、その方法は存じてますが使えません、 タグ自身を変更する方法はありませんでしょうか? html側の記述は<form>~</form>の前なら付け足せますが <form>以降は改変できません。 おそらくreplaceを使用するのだと思うのですが、この場合どうすればいいのかがわからなくて・・・ 補足:formや各inputには別々のnameが振ってあります

関連するQ&A

  • formタグ

    HTMLで、formを使用し、CGIへテキストエリアのデータをpostしたいと 考えております。 テキストエリアを3つ、ボタンを1つ設けるならば 通常以下のようにすると思います。(必要部分の抜粋) <form action="foo1.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行"> </form> こうすると、実行ボタンをクリックすると、text1、text2、text3のテキストエリアに 記述されているテキストが送信されますが、ここにボタンをもう一つ設け、 上記3つのデータを別のCGIに送信したいのですが、 この場合どのようにHTMLを記述したらよいでしょうか? 新たに下記のようにformタグを設けると、テキストエリアは6つになってしまいますし。。。 <form action="foo2.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行2"> </form> どなたか分かる方情報頂けますか。

    • ベストアンサー
    • HTML
  • 異なるformのsubmitボタンを同一行に

    配置する方法を教えてください。 <form> <p><textarea></textarea></p> <p><input type="text"/></p> <input type="submit"/> </form> <form> <input type="submit"/> </form> とすると2つのボタンは異なる行に配置されます。 改行されないで同一行に配置する方法は有るでしょうか?

    • ベストアンサー
    • HTML
  • <form>タグでの情報をメールで受け取るにあたって

    <form method="POST" action="mailto:アドレス?subject=題名" enctype="text/plain"> <p>お名前 :<input type="text" name="name" size="40"></p> <p> メッセージ: <br> <textarea cols="50" rows="5" name="message"></textarea> </p> <p><input type="submit" value="送信する"></p> </form> ■□■□■□■□■□■□■□■□ 以上のようなHTMLタグでメーラーから情報を送信してもらおうと思っています。 追加で画像を添付できるようにしたりも出来るのでしょうか? 宜しくお願いします。

  • 2つのFormタグの動作について

    同じページに2つのFormタグを設置したいと考えています。ページが長いため、上部と下部それぞれにFormタグを設置したいと考えています。 <form name="upForm" action="xxx.cgi" method="post"> <input type="text" name="name1"> <input type="submit" value="送信"> </form> --------------- 他の処理 --------------- --------------- 他の処理 --------------- --------------- 他の処理 --------------- <form name="downForm" action="xxx.cgi" method="post"> <input type="text" name="name1"> <input type="submit" value="送信"> </form> 下のFormの送信ボタンを押すと、上のFormが動作しているようで、下のFormの入力値が反映されません。それぞれのFormをそれぞれの送信ボタンで動作させる方法につきまして、ご存知の方がいましたらぜひ教えていただきたいと思います。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • <form>タグに2つのボタン

    <form>タグで2つのボタンを表示させ、以下のようにそれぞれのボタンで フィールドに別の値を入れて送信させることはできますでしょうか? できればHTMLで、できなければJavaScriptでできますでしょうか? ・button1を押したときは  フィールド「CASE」に1を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="1"> ・button2を押したときは  フィールド「CASE」に2を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="2"> ===== HTML ====================== <form action="test.cgi" method="post"> <input type="text" name="text1"> <input type="submit" value="button1"> <input type="submit" value="button2"> </form> 宜しくお願いします。

    • ベストアンサー
    • HTML
  • POSTすると配列の数がおかしくなる

    matとquaとhowtoをそれぞれ4つPOSTしているのですが、POSTされたデータを受け取るとmat4つ、qua5つ、howto5つと数がおかしくなります。 なぜかわかりません。とくにインクリメントしていないのに増えます。 教えて下さい。 <script type="text/javascript"> function myAdd(obj){ var max=15; var c=count("mat"); if(c>=max) return false; var oTR=document.createElement("tr"); var names=["mat","qua"]; for(var i in names){ var oTD = document.createElement("td"); var oTag = document.createElement("input"); oTag.setAttribute("type", "text"); oTag.setAttribute("name", names[i] + (c+1).toString()); oTD.appendChild(oTag); oTR.appendChild(oTD); } document.getElementById("t0").getElementsByTagName("tbody")[0].appendChild(oTR); if(c>=max-1) obj.disabled=true; } function count(name){ var tags=document.getElementsByTagName("input"); var ta=document.getElementsByTagName("textarea"); var c=0; var reg=RegExp("^"+name+"[0-9]+$"); if(tags){ for(var i=0;i<tags.length;i++){ if(tags[i].name.match(reg)){ c++; } } } if(ta){ for(var i=0;i<ta.length;i++){ if(ta[i].name.match(reg)){ c++; } } } return c; } function myTextAreaAdd(obj){ var max=15; var c=count("howto"); if(c>=max) return false; var oTag = document.createElement("textarea"); oTag.setAttribute("name", "howto" + tag_num++); var oDiv = document.getElementById("area"); oDiv.appendChild(oTag); if(c>=max-1) obj.disabled=true; } </script> </head> <body> <form method="post" enctype="multipart/form-data" action="check.php"> <textarea name="explain"></textarea> <table id="t0" border> <tbody> <tr> <td><input type="text" name="mat1" /></td> <td><input type="text" name="qua1" /></td> </tr> <tr> <td><input type="text" name="mat2" /></td> <td><input type="text" name="qua2" /></td> </tr> <tr> <td><input type="text" name="mat3" /></td> <td><input type="text" name="qua3" /></td> </tr> <tr> <td><input type="text" name="mat4" /></td> <td><input type="text" name="qua4" /></td> </tr> </tbody> </table> <input type="button" value="追加する" onClick="myAdd(this)"> <br /> <span id="area"> <textarea name="howto1"></textarea> <textarea name="howto2"></textarea> <textarea name="howto3"></textarea> <textarea name="howto4"></textarea> </span><br /> <input type="button" value="追加する" onClick="myTextAreaAdd(this)"> <input type="submit" value="送る"> </form>

  • tableタグとformタグの組み合わせ

    tableタグとformタグの組み合わせでどのように記述すれば、構文上正しいのでしょうか? 私は下のパターンで書いておりますが、間違いでしたら早めに改めたいので お聞きしました。 <table> <form> <input type="hidden" name="a" value="1"> <tr> <td> <input type="text" name="b" value=""> </td> </tr> <tr> <td> <input type="submit" value="OK" value=""> </td> </tr> </fomr> </table>

    • ベストアンサー
    • HTML
  • HTML テキストエリアの最大入力桁の指定法

    タイトルのとおりですが、調べても テキストエリアは行と幅の指定はできるのですが、 最大入力値の指定方法は書いていないのです。 テキストボックス <input type ="text" ~>なら、 maxlength属性を記述すればよいのはわかりました。 どのように<textarea>タグに記述すればよいのでしょうか?

  • 複数のsubmitボタンを使い値を送信する

    <form action="/サーブレットへ" method="post"> <input type ="TEXT" NAME="text1"> <input type ="TEXT" NAME="text2"><br> <textarea name="zzzz" cols="100" rows="10"> </textarea> <input type="hidden" name="a1" value="3"> <input type="submit" name="a1" value="作成"> <input type="hidden" name="a1" value="2"> <input type="submit" name="a1" value="修正"> </form> 複数のsubmitを使用してそれぞれ違う、値又は変数を渡し処理をしたいのですが、わかりません。 分かる方がいましたら教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • 【htmlタグ】inputタグの書き方について

    現状は <input type="text">のテキスト入力エリアが存在します。 それを<form>タグで囲い、 <input type="button">のボタン押下にてform内容を送信していますが、 ボタンではなく、<a>タグのように、ハイパーリンクのような見た目にしてform内容を送信したいです。 どのように修正すればよろしいのでしょうか。宜しくお願いします。

    • ベストアンサー
    • HTML