• 締切済み

ソースの簡略化、、、

「行追加をクリック」すると、テキスト入力覧が表示されるという仕組みのプログラムです。 詳細: htmlファイルに line_1から~line_20までタグをいっぱい書き、 最初はjavascriptを利用して「XXXX.style.display = 'none';」すべて見せない状態にしまし その状態で、「行追加をクリック」をクリックするとjavascript処理で1つずつ表示されるようにしました。 ここで質問ですが、 20個の同じコードを繰り返しいっぱい書く代わりにこれらをまとめて簡単にすることはできないでしょうか? 例え、40個の表示が必要となれば同じコードを40回も書かなきゃいけないので、、大変です。 <div id="line_1" class="mytext"> <tr> <td width=50> <input type="text" name="Line1"> </td> </tr> </div> <div id="line_2" class="mytext"> <tr> <td width=50> <input type="text" name="Line2"> </td> </tr> </div> <div id="line_3" class="mytext"> <tr> <td width=50> <input type="text" name="Line3"> </td> </tr> </div> <div id="line_4" class="mytext"> <tr> <td width=50> <input type="text" name="Line4"> </td> </tr> </div> ・ ・ ・ ・ <div id="line_20" class="mytext"> > <tr> <td width=50> <input type="text" name="Line20"> </td> </tr> </div> <p class="UP"><a href="#" id="upLine">行追加</a></p> ご教授よろしくお願いします。

みんなの回答

  • think49
  • ベストアンサー率59% (285/482)
回答No.4

そもそも、不正なHTMLですが <div> で括るのは必須なのでしょうか…。 http://jsbin.com/epima3/2

全文を見る
すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

表示/非表示による方法ではなく、実際に追加してゆく方法に関する記事が以下にありますので、ご参考まで。  http://www.abe-tatsuya.com/web_prog/javascript/add_table_rows.php

全文を見る
すると、全ての回答が全文表示されます。
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

「XXXX.style.display = 'none';」で、すべて見せない状態にしてあっても、 サブミットされると、中身が空でも全部のテキストボックスが送信されますが、 それでもよろしいんですか? document.createElementとelement.appendChild(element)を使う方法や element.innerHTMLで書き換える方法(form内を書き換える時IEは要注意!) もあります。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

こんばんは。 tableを使うのなら、追加したいときに、 insertRow でいいと思います・・・。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • メールフォームについて

    この中にどのようなHTMLを書けば自分のPCにメールが届く ようになりますか?よろしくお願いします。 <h2>■MAIL FORM</h2> <div class="text"> <form><table><tr><td width="100" align=right> NAME</td><td align=right><input type="text" name="Name" size="34"></td></tr><tr><td width="100" align=right> MAIL</td><td align=right><input type="text" name="Mail" size="34"></td></tr></table> <TEXTAREA NAME="Comments" ROWS="8" COLS="39" value="comments"></TEXTAREA> <br> <table><tr><td width="100" align=right> </td> </tr><tr> <td width="100" align=right> URL</td><td><input type="text" name="URL" value="http://" size="34"></td></tr><tr><td></td><td align="right"> <INPUT TYPE="reset" VALUE=" Reset "> <INPUT TYPE="submit" VALUE=" Send "></FORM> </td></tr></table><br></div>

    • ベストアンサー
    • HTML
  • このメルフォタグについて…

    <div id="main"> <BR class="clear"> <h2>Contact</h2> <div class="txt"> <table cellspacing="3" cellpadding="3" border=0> <tr> <td>NAME</td> <td><input name="name" type="text" size="30"></td> </tr> <tr> <td>MAIL</td> <td><input name="mail" type="text" size="30"></td> </tr> <tr> <td>URL</td> <td><input name="url" type="text" value="http://" size="30"></td> </tr> <tr> <td valign="top">COMMENT</td> <td><textarea name="msg" cols="30" rows="5">ご感想や管理人へのお便りはこちら☆</textarea></td> </tr> <tr> <td colspan="2" align="right"> <input type="button" name="submit" value="SUBMIT" class="b"></td> </tr> </table> </div> テンプレートをお借りしたのですが、メルフォタグがこのようになっていました。 が、このままでは使用出来ないので、どこに自分のメアドを入れればいいのか教えて下さい。

  • フォーム内容がメールでうまく取得できない

    ホームページ作り初心者です。 くだらない質問かもしれないのですが、行き詰まって悩んでいます…。 どうかよろしくお願い致します。 今、CGIを使ってフォームを作っています。 基本的なフォームでは問題がないので、CGI自体に問題はないと思います。 それが、メールフォームをテーブルで囲まれたデザインにした途端、フォーム内容がうまくメールで取得できなくなりました。 本当なら 「shopname = ○○○○  name = ○○○○  tel = ○○○○  email = ○○○○  question = ○○○○」 と送ってほしいのに、 「shopname =  ○○○○  name」 となんとも中途半端な内容が送られてきます…。 テーブルを使ったからCGIがうまく作動しないのか、HTMLがおかしいのか、CGIがおかしいのか、どこがいけないのかわかりません。 アドバイスいただけたら嬉しいです。 宜しくお願い致します。 以下、フォームのHTMLです。 --------------------------------------- <form action="./postmail.cgi" method="post" enctype="text/plain" name="form1" id="form1"> <table width="520" border="0" cellspacing="2" cellpadding="2" bgcolor="#7EBEB6"> <tr> <td width="152" bgcolor="#FFFFFF" class="style3"><center> 店舗名 </center></td> <td width="354" bgcolor="#FFFFFF"><input type="text" name="shopname" size="44" /> </td> </tr> <tr> <td width="152" bgcolor="#FFFFFF" class="style3"><center> ご担当者名 </center></td> <td width="354" bgcolor="#FFFFFF"><input type="text" name="name" size="44" id="name" /> </td> </tr> <tr> <td width="152" bgcolor="#FFFFFF" class="style3"><center> お電話番号 </center></td> <td width="354" bgcolor="#FFFFFF"><input type="text" name="tel" size="44" id="tel" /> </td> </tr> <tr> <td width="152" bgcolor="#FFFFFF" class="style3"><center> メールアドレス </center></td> <td width="354" bgcolor="#FFFFFF"><input type="text" name="email" size="44" id="email" /> </td> </tr> <tr> <td width="152" bgcolor="#FFFFFF" class="style3"><center> メールアドレス(確認用) </center></td> <td width="354" bgcolor="#FFFFFF"><input type="text" name="email2" size="44" id="email2" /> </td> </tr> <tr> <td width="152" bgcolor="#FFFFFF" class="style3"><center> お問い合わせ内容 </center></td> <td width="354" bgcolor="#FFFFFF"><textarea name="question" cols="43" rows="7"></textarea></td> </tr> </table> <br /> <input type="submit" name="button" id="button" value="送信" /> <input type="reset" name="button2" id="button2" value="すべてクリア" /> <br /> </form>

    • ベストアンサー
    • HTML
  • colspan を使用した際のIE7の動作

    行き詰ってしまったのでこちらで質問させていただきます。 テーブルで表を作成しているのですが、 colspanで指定したセルの中にinputを入れると急にIE7でレイアウトが崩れます。 IEの他のverでは大丈夫なのですが、7だけくずれてしまうのは何か回避策があるのでしょうか? ちなみに、下記のようなソースです。 全体で8列とり、1行目は項目3つに対してそれぞれinputを入れる列があり、 2行目は項目2つでinputを入れる列があります。 1行目は3等分にしたく、2行目は2等分にしたい形です。 何かほかに方法があるのでしょうか? ご教授いただければと思います。 <style type="text/css"> .test{border-collapse:collapse;} .test td,.test th{border:solid 1px #000;} </style> <table width="952" border="1" cellspacing="0" cellpadding="0" class="test"> <tr> <th width="80">項目1</th> <td width="235"><input name="" type="text" value="12345" /></td> <th width="80">項目2</th> <td colspan="3"><input name="" type="text" value="12345" /></td> <th width="80">項目3</th> <td width="235"><input name="" type="text" value="12345" /></td> </tr> <tr> <th>項目4</th> <td colspan="3"><input name="input2" type="text" value="12345" /></td> <th width="80">項目5</th> <td colspan="3"><input name="input3" type="text" value="12345" /></td> </tr> </table>

    • ベストアンサー
    • HTML
  • htmlでインプットボックスを横並びに表示したい。

    ホームページを作成しておりますが、tdの中にinput type="text"にてテキストボックスを4つ作成したいと考えております。 こちらで拝見いたしましたチェックボックスの右側に文字を表示される方法をご参考にさせていただき、下記を作成しましたが、縦並びになってしまいます。 何とかして縦2×横2に置き換えることはできないでしょうか? ブラウザはIE11を使用しており、コードはVisualStudioCodeを使用しております。 <div style="top : 161px;left : 8px; position : absolute; z-index : 4; width : 847px; height : 252px; " id="Layer5"> <div style="background: white; padding: 10px; margin-bottom: 10px; border: 1px solid #333333"> <table border="1" height="252" width="818"> <tr bgcolor="gray" style="color:white" height="50"> <th height="42" width="92"><b>列1</b></th> <th height="42" width="212">列2・列3<br>列4・列5</th> <th height="42" width="137">列7/列8</th> <th height="42" width="189"><b>列9/列10</b></th> </tr> <tr bgcolor="lightyellow"> <td align="center" height="47" width="92"> <input type="text" name=列1 style="background:white; color:#000000;" align="middle" value="83行目"> </td> <td align="center" height="47" width="312"> <input type="text" name=列2 style="background:white; color:#000000;" align="middle" value="86行目"> <input type="text" name=列3 style="background:white; color:#000000;" align="middle" value="87行目"> <input type="text" name=列4 style="background:white; color:#000000;" align="middle" value="88行目"> <input type="text" name=列5 style="background:white; color:#000000;" align="middle" value="89行目"> </td> <td align="center" height="47" width="137"><input type="text" name=列7 style="background:white; color:#000000;" align="middle" value="92行目"> <span> <input type="text" name=列8 style="background:white; color:#000000;" align="middle" value="93行目"> </span> </td> </div> <td align="center" height="47" width="189"><input type="text" name=列9 style="background:white; color:#000000;" align="middle" value="96行目"> <input type="text" name=列0 style="background:white; color:#000000;" align="middle" value="97行目"> </td> </tr> <tr> <td align="center" height="47" width="92"></td> <td align="center" height="47" width="212"></td> <td align="center" height="47" width="137"></td> <td align="center" height="47" width="189"></td> </tr> </table> </div> </div> 【上記で表示させた場合】 ーーーーー|  86行目  |ーーーーー| ーーーーー|  87行目  |ーーーーー|  96行目  83行目  |  88行目  |  92行目|  97行目 ーーーーー|  89行目  |ーーーーー| 【やりたいこと】 ーーーーー|ーーーーーーーーーー|ーーーーー| ーーーーー|  86行目|87行目 |ーーーーー|  96行目  83行目  |  88行目|89行目 | 92行目 |  97行目 ーーーーー|ーーーーーーーーーー|ーーーーー|

  • PHPコード表示について

    PHPコードが下記になっています。 文字バケを正常に表示させる方法を教えてください。 <!-- login-box[start] --> <div id="login"> <?php if (isset($_SESSION['sLoginID'])) { ?> <form action="mem_logout.php" method="post"> <table> <tr> <td>。。<font color="#6699ff" size="3">「」 <b>イ餔ホノー</b></font></td> </tr> <tr> <td>。。<?php echo htmlspecialchars($_SESSION['sNickname']); ?>、オ、・/td> </tr> <tr> <td class="sp02"><div id="login_right">・愠ー・、・鹵讀ヌ、ケ。」</div></td> </tr> <tr> <td class="sp02"><div id="login_right"><input type="submit" value="・愠ー・「・ヲ・ネ" /></div></td> </tr> </table> <input type="hidden" name="fLoginID" value="dummy" /> <input type="hidden" name="fPassword" value="dummy" /> </form> <?php } else { ?> <form name="login" action="http://www.haradagr-dp.co.jp/test/mem_check.php" method="post" onsubmit="return loginCheck()"> <input type="hidden" name="fTarget" value="<?php echo $ftarget; ?>"> <table> <tr> <td colspan="2">。。<font color="#6699ff" size="3">「」 <b>イ餔ホノー</b></font></td> </tr> <tr> <td colspan="2" align="center">、ェサ釥キエ・ヨテ讀ヌ、ケ。」<br> ID。ァtestid<br> ・ム・ケ・・シ・ノ。ァtest1234</td> </tr> <tr> <td width="80" valign="bottom" class="login_bold"> ID </td> <td valign="bottom" class="sp02"><div id="login_input"><input type="text" name="fLoginID" size="16" maxlength="16"></div></td> </tr> <tr> <td width="80" valign="bottom" class="login_bold">・ム・ケ・・シ・ノ </td> <td valign="bottom" class="sp02"><div id="login_input"><input type="password" name="fPassword" size="16" maxlength="16"></div></td> </tr> <tr> <td colspan="2" class="sp02"><div id="login_right"><input type="image" src="image/log_in.gif" alt="・愠ー・、・・ width="100" height="20" border="0"></div></td> </tr> <tr> <td colspan="2"><div id="login_right"><font size="1" color="#ea5550">「ィ・ッ・テ・ュ。シ、鰺ュク妤ヒ、キ、ニ、ッ、タ、オ、、。」</font></div></td> </tr> </table> </form> <?php } ?> </div> <!-- login-box[end] --> <br> <div class="links" align="center"> <a href="http://www.haradagr-dp.co.jp/okusuri-navi/sodan.html" target="_blank"><img src="image/bullet250.gif" width="133" height="46" border="0"></a><br> 「ャ「ャ「ャ<br> 、ェフ・フ、マ、ウ、チ、鬢ォ、・/div> <br>

    • ベストアンサー
    • PHP
  • DWでのメールフォーム作成

    こんにちは。 DWMXでメールフォーム作成をしたのですが、web上で送信ボタンを押すとなぜかメールアプリケーションが立ち上がって、宛先に送信先のアドレスが表示されています。 メールフォームとは送信ボタンを押すとフォームの内容がそのまま送信先に送信されるものですよね? 以下構文です。なにかおかしいのでしょうか。よろしくおねがいします☆ <form action="mailto:自分のアドレス" enctype="text/plain" name="mailform" id="mailform"> <table width="304" border="0" cellspacing="1" cellpadding="1"> <tr> <td><div align="center">name</div></td> </tr> <tr> <td><div align="center"> <input type="text" name="textfield"> </div></td> </tr> <tr> <td><div align="center">mail adress</div></td> </tr> <tr> <td><div align="center"> <input type="text" name="textfield2"> </div></td> </tr> <tr> <td><div align="center">件名</div></td> </tr> <tr> <td><div align="center"> <input type="text" name="textfield3"> </div></td> </tr> <tr> <td><div align="center">本文</div></td> </tr> <tr> <td><div align="center"> <textarea name="textarea"></textarea> </div></td> </tr> <tr> <td>&nbsp;</td> </tr> <tr> <td><div align="center">   <input type="submit" name="Submit" value="送信"> <input type="reset" name="Submit2" value="リセット">

  • javascriptが得意な方ご教授ください。for文関連です。

    以下のソースにて?の部分を配列番号と同等にしたいのですが、うまくいきません。 やりたいことは配列のEbox_Div[0]~[3]の中にnullが入った場合その配列番号に対応するテキストボックスのEmail0~3には"空"と代入したいのです。 ※hiddenタグのEmail_hの値はTBLの状態によって異なります。 <script language="javascript"> function bunkatsu(){ var Ebox_Div = new Array(); Ebox_Div = document.myform.Email_h.value.split(","); document.myform.Email0.value = Ebox_Div[0]; document.myform.Email1.value = Ebox_Div[1]; document.myform.Email2.value = Ebox_Div[2]; document.myform.Email3.value = Ebox_Div[3]; for (i=0; i<4; i++){ if(Ebox_Div[i] == null){ document.myform.Email?.value = "空"; } } } </script> <body bgcolor="white" onLoad="bunkatsu()"> <form name="myform"> <input type="hidden" name="Email_h" value="aho,baka"> <table border="0" width="100%"> <tr><td width="10%">アドレス1</td><td width="90%"><input type="text" name="Email0" size="60"></td></tr> <tr><td width="10%">アドレス2</td><td width="90%"><input type="text" name="Email1" size="60"></td></tr> <tr><td width="10%">アドレス3</td><td width="90%"><input type="text" name="Email2" size="60"></td></tr> <tr><td width="10%">アドレス4</td><td width="90%"><input type="text" name="Email3" size="60"></td></tr> </table> よろしくお願い致します。

  • getElementByIdではまってます・・・

    以下のソースを書いて、Firefoxで実行すると 検索ボタンをクリックするとテーブルが表示されるのですが すぐにもとに戻ってしまいます。 すいません。初心者です。 どなたかご教授ください。 言っている意味が分からなかったらすいません。 補足します。 HTMLです。 <td style="width:60px;" align="center"><input style="width:60px" type="submit" id="id" name="id" onclick="effectDetailWindow('detailWindow');" value="検索"></td> <div id="detailWindow" style="display:none;"> <table border="1" cellpadding="3" cellspacing="1" bordercolor="#000000" style="width:460px;"> <tr> <td style="width:80px;" class="table_head"> TEST1 </td> <td style="width:150px;"> <input type="text" size="25" maxlength="50" name="searchtest1" value="{$form.searchtest1}"> </td> <td style="width:80px;" class="table_head"> TEST2 </td> <td style="width:150px;"> <input type="text" size="25" maxlength="50" name="searchtest2" value="{$form.searchtest2}"> </td> </tr> </table> </div> JavaScriptです。 function effectDetailWindow(id) { var obj = document.getElementById(id); if( obj.style.display == "none" ) { obj.style.display = "block"; } else { obj.style.display = "none"; } }

  • スタイルシートのみで表の作成

    よくある、「サービスにログインするときのパスワード、ID入力画面」というものを作ってます。 パスワード、テキストフィールド ID、テキストフィールド ログインボタン のような。 たとえば簡単にテーブルで組みますと、 <table width="400" border="0" cellspacing="0" cellpadding="2"> <tr> <td width="100">パスワード</td> <td><label> <input type="text" name="textfield" /> </label></td> </tr> <tr> <td>ID</td> <td><input type="text" name="textfield2" /></td> </tr> <tr> <td colspan="2" align="center"><label> <input type="submit" name="Submit" value="ログイン" /> </label></td> </tr> </table> 似たり寄ったりこんな感じだとします。 これと同等のものを、スタイルシートだけで作成できますか? たとえば、ソースは、 <dl id="LOGIN-FORM"> <dt class="loginFormLabel" id="USER-NAME-LABEL"> <label for="USER-NAME">ユーザ名</label> <input type="text" name="username" size="24" value="" id="USER-NAME" class="inputText" /> </dt> <dt class="loginFormLabel" id="USER-PASSWORD-LABEL"> <label for="USER-PASSWORD">パスワード</label> <input type="password" name="password" size="24" value="" onmousedown="" onkeydown="if (event.keyCode == 13) {enter.click();return false;}" id="USER-PASSWORD" class="inputText" /> </dt> <dt class="loginFormLabel" id="USER-INFO-SUBMIT-LABEL"> <label for="USER-INFO-SUBMIT">アクション</label> </dt> <dd class="loginFormText" id="USER-INFO-SUBMIT-TEXT"> <input type="submit" value="ログイン" id="USER-INFO-SUBMIT" class="submit" /> </dd> </dl> です。 テキストフィールドの頭をそろえたり、ログインボタンの位置を 変えたりしたいです。 テーブルでやればいいのに・・・と思いますが、 スタイルシートで頼むといわれて、困ってます。 教えてください。