お世話になります。
下記のように行数が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で質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
Tableの枠線(内・外)色を変更
-
selectのonChangeが動作しません
-
画面表示とともに、テーブルの...
-
プルダウンメニューを表の中に...
-
JQueryでテーブルの行を追加し...
-
Javascriptでテーブルタグの座...
-
javascriptでカレンダーを作る
-
javascriptで画像をテーブルに...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
Selectボックスの幅を自動で広...
-
hiddenのvalueの値を変えたい
-
ラジオボタンにタブインデック...
-
value内に変数を入れたい
-
一覧から選択した行の行番号を...
-
【jQuery】input nameの文字列...
-
VBAをJavaScriptに変換したいです
-
onchangeイベントを強制的に発...
-
javaScriptの変数をJavaの変数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
テーブルの行数を可変長にした...
-
画面表示とともに、テーブルの...
-
javascriptで<table>背景色の取得
-
javascriptでクリックするごと...
-
テキストエリアに入力した改行...
-
JQueryでテーブルの行を追加し...
-
javascriptで画像をテーブルに...
-
クリックごとに文字色が交互に...
-
カレンダーに印を付けたい
-
任意に文字数指定のできる原稿...
-
idの振り直しについて
-
tbody要素のinnerHTMLが書き換...
-
複数画像のロールオーバー
-
指定のテキストをクリックする...
-
マウスが重なったら画像の上に...
-
jQueryでの親の親の隣の子供の...
-
JavaScript 保守性の高めたい 2
-
Javascriptでの開閉リストの質問
おすすめ情報