
追加ボタンを押度に,テーブルに1行ずつ追加されるプログラムを組んでいるのですが,追加ボタンを押しても何も起こりません.1行には,テキストボックスとプルダウンメニューの2つのセルが含まれます.テキストボックスのみであれば,追加に成功します.
プルダウンのメニュー項目の追加方法ではなく,プルダウン自体を複製して追加していきたいのですが,参考サイトが見つかりませんでした.また,各行を識別する為一意の名前をつけたいのですが,どう記述したらよろしいでしょうか.
お手数おかけしますが,下記ソースのどこが間違っているのか,どう処理すべきなのかを,ご教示頂けますでしょうか.お願い致します.
<BODY>
<TABLE id="Table1">
<TR>
<td class="cellWhite"><input type="text" value="単語入力" onFocus="cText(this)" onBlur="sText(this)" style="color:#999"></td>
<td bgcolor="#5096C9" width="113px">
<select name="column">
<option value="00">赤</option>
<option value="01">青</option>
<option value="02">黄</option>
</select></td></tr></TABLE>
<INPUT TYPE="button" VALUE="行追加" onclick="addRow()">
<script language="JavaScript">
function addRow() {
var tbl = document.getElementById("Table1").firstChild;
if (!tbl.tagName) {
tbl = document.getElementById("Table1");}
var tr = document.createElement("tr");
var td1 = document.createElement("td");
td1.setAttribute("class","cellWhite");
var tx1 = document.createElement("input");
tx1.setAttribute("type","text");
tx1.setAttribute("value","単語入力");
tx1.setAttribute("onFocus","cText(this)");
tx1.setAttribute("onBlur","sText(this)");
tx1.setAttribute("style","color:#999");
td1.appendChild(tx1);
var td2 = document.createElement("td");
var selectName="column";//selectの名前
var options={0:"赤",1:"青",2:"黄"};
var c=sel.firstChild;
while(c){
if(c.name==selectName) sel.removeChild(c);
c=c.nextSibling;}
var e=document.createElement("select");
e.setAttribute("name",selectName);
for(var i in options){
var o=document.createElement("option");
o.setAttribute("value",options[i]);
o.appendChild(document.createTextNode(options[i]));
e.appendChild(o);}
sel.appendChild(e);
tr.appendChild(td1);tr.appendChild(td2);tbl.appendChild(tr);}</script>
参考にしたサイトです:
http://oshiete1.watch.impress.co.jp/qa4074195.html
http://okwave.jp/qa299889.html
No.2ベストアンサー
- 回答日時:
参考までに。
<script type="text/javascript">
/*@cc_on@*/
function addEvent(e, t, f){
e./*@if(1) attachEvent('on' + @else@*/ addEventListener(/*@end@*/ t, f, false);
}
function addRow(trigger){
var table = trigger.ownerDocument.getElementById('Table1');
// 最初の行こぴー
var row = table.rows[0].cloneNode(true);
// 名前は好きなように。
row.id = 'ROW.' + table.rows.length;
// 最初のインプット要素
input = row.getElementsByTagName('INPUT')[0];
// イベント追加
addEvent(input, 'focus', cText);
addEvent(input, 'blur', cText);
// 最初のセレクト要素
select = row.getElementsByTagName('SELECT')[0];
select.name = 'column.' + table.rows.length;
// 最初の tbody に行追加(HTML4.01 の場合 tbody 必須)
table.tBodies[0].appendChild(row);
}
function cText(evt){
var obj = evt.target || evt.srcElement;
// ...
}
</script>
</head>
<body>
<div>
<table id="Table1">
<tbody>
<tr>
<td class="cellWhite">
<input type="text" value="単語入力" style="color:#999">
</td>
<td bgcolor="#5096C9" width="113">
<select name="column">
<option value="00">赤</option>
<option value="01">青</option>
<option value="02">黄</option>
</select>
</td>
</tr>
</tbody>
</table>
<input type="button" value="行追加" onclick="addRow(this)">
</div>
</body>

No.1
- 回答日時:
問題のボタンを押すと、ブラウザの下の方とかにエラーメッセージが出ませんか?「ページでエラーが発生しました」とか。
で、それをクリックしたらエラーの詳細がでませんか?「エラー:'sel'は宣言されていません。」とか。
それは、ここ↓で
var c=sel.firstChild;
いきなり'sel'という知らない変数が出てきたからです。
このselとは何ですか?参考にされたソース等を確認してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Selectボックスの幅を自動で広...
-
プルダウン 項目が多いので先頭...
-
CSVファイルを読みこみ、プルダ...
-
JQuery selectが反映されない
-
document.form で nullまたは...
-
selectメニューのselectedの位...
-
jQuery セレクトボックスで選択...
-
連動セレクトメニュー option...
-
selectタグに直接onChangeを書...
-
Selectの中身をfor文で入れる
-
セレクトメニューで選択された...
-
onFocusOutが複数回呼ばれる!
-
セレクトメニューで最初から読...
-
現在時刻を取得してフォームのs...
-
【javascript・PHP】プルダウン...
-
jQueryで合計を出したい
-
slickのレスポンシブ > center...
-
一覧から選択した行の行番号を...
-
onchangeイベントを強制的に発...
-
return trueとreturn falseの用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウン 項目が多いので先頭...
-
Selectボックスの幅を自動で広...
-
jQuery セレクトボックスで選択...
-
セレクトを全て選択されていな...
-
【javascript・PHP】プルダウン...
-
JQuery selectが反映されない
-
CSVファイルを読みこみ、プルダ...
-
ブラウザの戻るボタンを押した...
-
selectタグに直接onChangeを書...
-
onFocusOutが複数回呼ばれる!
-
リストボックス間で値をコピー...
-
Selectの中身をfor文で入れる
-
javascriptでselectボックスの<...
-
リロード時もコンボボックスの...
-
リストボックスの項目の順番を...
-
getElementsByNameについて
-
現在時刻を取得してフォームのs...
-
セレクトの値を取得できない
-
<textarea>にプルダウンを表示...
-
フォームのメニューリストを外...
おすすめ情報