
お世話になります。
下記のように行数が10行のテーブルがあります。
<table id="tbl1">
<tr>
<td>1</td><td><input type="text" id="txt1"></td>
</tr>
<tr>
<td>2</td><td><input type="text" id="txt2"></td>
</tr>
省略
<tr>
<td>10</td><td><input type="text" id="txt10"></td>
</tr>
</table>
削除ボタンを押下すると1行目をdeleteRow()で削除し、
連番とテキストフィールドのidを1から振り直すようにしてあります。
ここまでは問題なく動作しますが、submit直前の入力チェック
で下記のようにしてもidが1,1,2,3,4,5,6,7,8のように取得されます。idの振り直しは出来ないのでしょうか。
ブラウザはIE6を使用しています。
よろしくお願いします。
var vRows = document.getElementById("tbl1").rows.length;
for (var vIndex = 1; vIndex <= vRows; vIndex++) {
if (document.getElementById("txt" + vIndex).value) == "") {
alert("未入力項目があります。");
}
}
No.1ベストアンサー
- 回答日時:
> idの振り直しは出来ないのでしょうか。
できますよ。
> var vRows = document.getElementById("tbl1").rows.length;
> for (var vIndex = 1; vIndex <= vRows; vIndex++) {
> if (document.getElementById("txt" + vIndex).value) == "") {
> alert("未入力項目があります。");
> }
> }
この部分を見る限り問題はなさそうなので、
削除の時にtxt1が2つ残るように削除しているか、
idの振り直しの時にtxt1が2つ作られていると思います。
削除の方法、IDの振り直しの方法を見直してみてはいかがでしょうか。
ご回答ありがとうございます。
idの振り直しは可能ということで
元のソースをもう一度、一つ一つチェックした所
原因がわかりました。
実は質問の際に元のソースをかなり省略してしまったのですが
下記のようにid属性とname属性の値が同じだったためこのような
現象になりました。
ありがとうございました。
<td>1</td><td><input type="text" id="txt1" name="txt1"></td>
No.2
- 回答日時:
ソースの中で、insertRow()がありますか。
ないの場合、ソースは以下に修正:
var vRows = document.getElementById("tbl1").rows.length;
for (var vIndex = 1; vIndex <= vRows; vIndex++) {
var txtbox = document.getElementById("txt" + vIndex)
if (txtbox && txtbox.value == "") {
alert("未入力項目があります。");
}
}
そして、JavaScriptエラーがない。
idの振り直しも出来できます。でも、難しいです。
ご回答ありがとうございます。
idの振り直しは可能ということで
元のソースをもう一度、一つ一つチェックした所
原因がわかりました。
実は質問の際に元のソースをかなり省略してしまったのですが
下記のようにid属性とname属性の値が同じだったためこのような
現象になりました。
ありがとうございました。
<td>1</td><td><input type="text" id="txt1" name="txt1"></td>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
クリックごとに文字色が交互に...
-
javascriptでクリックするごと...
-
テーブルのセルのクリック時、...
-
テキストエリアに入力した改行...
-
Javascriptでテーブルタグの座...
-
テーブルの行数を可変長にした...
-
サイト内の物件を複数の検索条...
-
tabindexの取得
-
return trueとreturn falseの用...
-
指定したタグを書き換えるには?
-
プルダウンで選択すると、DBの...
-
selectメニューのselectedの位...
-
JSPとJavaScriptの連携について...
-
ラジオボタンにタブインデック...
-
【JavaScript】プルダウンで数...
-
ボタン無しでフォーム内容送信
-
プルダウン 項目が多いので先頭...
-
Selectボックスの幅を自動で広...
-
確認ダイアログの出し方(JavaS...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
画面表示とともに、テーブルの...
-
新しいウィンドをリンク指定し...
-
jquery にて、アラートダイアロ...
-
指定のテキストをクリックする...
-
テーブルの行数を可変長にした...
-
写真の下に説明文
-
html内>テーブル内に複数のjav...
-
Javascriptでテーブルタグの座...
-
【jQuery】tableループ内のIDの...
-
クリックごとに文字色が交互に...
-
javascript でテーブル操作
-
javascriptのカルーセル
-
a9のサイトの仕組み
-
appendChildとinnerHTMLを短く
-
javascriptでクリックするごと...
-
テキストエリアに入力した改行...
-
tbody要素のinnerHTMLが書き換...
-
外部のデータファイルの読み込...
おすすめ情報