お世話になります。
下記のように行数が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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JQuery インプット要素 カウン...
-
<JavaScript>tableタグを入力不...
-
テーブルのセルのクリック時、...
-
【jQuery】tableループ内のIDの...
-
簡単なJavaスロットマシーンに...
-
クリックで指定のテーブルの背...
-
javascriptで画像をテーブルに...
-
javascriptで入力フォームが空...
-
プルダウン 項目が多いので先頭...
-
return trueとreturn falseの用...
-
javascript作成してます。ラジ...
-
フォーム内で記入したクエリ送...
-
onchangeイベントを強制的に発...
-
Selectの中身をfor文で入れる
-
FormのonsubmitでJavaスクリプ...
-
【javascript】連想配列からセ...
-
チェックボックスが複数ある場...
-
特定<table>内の<td>の色を変える
-
データベースの値を判断してラ...
-
formで項目を連結したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
画面表示とともに、テーブルの...
-
selectのonChangeが動作しません
-
テーブルの行数を可変長にした...
-
テキストエリアに入力した改行...
-
【jQuery】tableループ内のIDの...
-
idの振り直しについて
-
プルダウンメニューを表の中に...
-
javascriptで画像をテーブルに...
-
javascriptで<table>背景色の取得
-
javascriptでクリックするごと...
-
jquery にて、アラートダイアロ...
-
どこに挿入?
-
動的なcheckboxのcheckedについて
-
Javascriptでテーブルタグの座...
-
javascriptで画像の移動
-
クリックごとに文字色が交互に...
-
javascriptでスロットマシン
-
<iframe>内にHTMLをランダム表...
-
連動テーブルのクロスハイライト
おすすめ情報