jQuery が初めてで、わからないことについて支援を求めています。
複製されたテーブルの行には、<input type="text" name="dt[]" id="dt1">
フィールドが含まれています。以下は、複製されるテンプレート行です。
<table id="MyTable" name="MyTable">
<tr name="tr3" id="tr3">
<td>
<input type="text" name="dt[]" id="dt1">
</td>
<td>
<input type="file" name="fff[]" id="ff1">
</td>
</tr>
</table>
ユーザーはこれらのフィールドをいくつか作成する可能性があり、フォームを送信する前にそれらすべてをループしてテキストが含まれていることを確認する方法を見つけようとしています。
フォーム要素にアクセスするには、jQuery .on() メソッドを使用する必要があることに注意してください。ループはどのようにコーディングする必要がありますか? 最初に、私はこれを試してきました(編集済み):
$(document).on('click','#sub1',function() {
var d1 = $("[name^=dt]").val();
alert(d1);
if (d1 !=""){
$("#TheForm").submit();
} else {
alert("Empty fields!");
}
});
この:
var d1 = $("#dt1").val();
alert(d1);
この:
var d1 = $("#^dt").val();
alert(d1);
しかし、データを取得できませんでした。
編集: 要求に応じて、このコードは行を複製します:
$(document).on('click', '#add_row', function() {
$("table#MyTable tr:nth-child(4)")
.clone()
.show()
.find("input, span").each(function() {
$(this)
.val('')
.attr('id', function(_, id) {
var newcnt = id + count;
return id + count;
});
})
.end()
.appendTo("table")
;
count++;
if (count == 2) {
$('#add_row').prop('disabled', 'disabled');
}
}); //end add_row Function