Javascript Jquery是否从动态生成的输入框中获取值?
我想从tr标记中动态生成的inputbox中提取该值。但是由于某些原因,我面临着错误,并且我的值没有定义。我可能做错了什么?我对Jquery比较陌生。所以,我想知道我哪里做错了 index.jsJavascript Jquery是否从动态生成的输入框中获取值?,javascript,jquery,Javascript,Jquery,我想从tr标记中动态生成的inputbox中提取该值。但是由于某些原因,我面临着错误,并且我的值没有定义。我可能做错了什么?我对Jquery比较陌生。所以,我想知道我哪里做错了 index.js function dynamic_children() { $(function () { var no = $('#number_children').val() $('#id_children-TOTAL_FORMS').val = no
function dynamic_children() {
$(function () {
var no = $('#number_children').val()
$('#id_children-TOTAL_FORMS').val = no
children_added = $('#children_td_table tr').length
remaining = 4 - children_added
//determine if the no of children input are more than those left
if (no > remaining) {
//show alert that max children reached
$('max-children').show()
setTimeout(function () {
$('max-children').hide()
}, 3000);
} else if (no < children_added) {
no_to_remove = children_added - no
for (i = 0; i < no_to_remove; i++) {
$('#children_td_table').children().last().remove();
}
}
else {
for (var i = 0; i < remaining && i < no; i++) {
no_ = i + 1
$('#children_td_table')
.append($('<tr>')
.append('<td>' + no_ + '</td>')
.append($('<td>')
.append($('<input>')
.addClass('Input-text')
.attr('name', 'children-' + i + '-child_name')
.attr('id', 'children-' + i + '-child_name')
)
)
.append($('</td>'))
.append($('<td>')
.append($('<input>')
.addClass('Input-text')
.attr('name', 'children-' + i + '-child_dob')
.prop('type', 'date')
.prop('class', 'children-' + i + '-child_age')
.change(function () {
d = new Date($(this).val());
var before = moment($(d, 'YYYY-MM-DD'));
var age = moment().diff(d, 'years');
age_id_name = "#" + $(this).attr('class')
$(age_id_name).val(age);
})
))
.append($('</td>'))
.append($('<td>')
.append($('<input>')
.addClass('Input-text')
.attr('id', 'children-' + i + '-child_age')
.attr('name', 'child')
.prop('type', 'text')
))
.append($('</td>'))
)
.append($('</tr>'))
}
}
//
// for (var i = 0; i < no && i < 4; i++) {
//
//
// $("#delete_row").click(function () {
// if (i > 1) {
// $("#addr" + (i - 1)).html('');
// i--;
// }
// });
// }
})
}
函数动态_子函数(){
$(函数(){
var no=$('#number_children').val()
$('#id#children-TOTAL#u FORMS')。val=no
children_added=$('#children_td_table tr')。长度
剩余=4-添加了子项
//确定子输入的数量是否大于剩余的数量
如果(否>剩余){
//显示已达到最大子级的警报
$('max-children').show()
setTimeout(函数(){
$('max-children').hide()
}, 3000);
}否则,如果(无1){
//$(“#addr”+(i-1)).html(“”);
//我--;
// }
// });
// }
})
}
函数savechildinfo(){ var numfochildren=$(“#number_children”).val(); console.log(“CHildrennumber”,numfochildren); var tr=$(“#子项#td_表”)。最近('tr');
对于(var i=0;i来说,很难理解和阅读您的代码,但我会在下面强调您的问题 首先,无需使用
最接近的只需使用$(“#children_td_table”)
单独用于var tr
。其次,如果您想通过ID
找到它,那么应该使用var c=“#children-“+i+”-child\u name”
var i=1;
var no='123'//仅用于修复错误
$(“儿童”表)
.append($('')
.附加(“”+否+“”)
.append($('')
.append($('')
.addClass(“输入文本”)
.attr('name','children-'+i+'-childrename')
.attr('id','children-'+i+'-childrename')
.val('test')//稍后删除此项
))
.append(“”)
.append(“”)
);
savechildinfo();//我在加载时执行此操作
函数savechildinfo(){
var numochildren=2;//仅用于修复错误
console.log(“CHildrennumber”,numfochildren);
var tr=$(“#children#td_table”);
//删除最近的
for(var i=0;i
第4行中引用的这个在哪里?var c=“children-”+i+“-children\u name”
这里缺少ID
。var c=“\children-”+i+“-children\u name”
@AjAX.:-仍然不工作。您正在-不-关闭tr
和td
。您的第一个生成表的函数工作正常吗?我的意思是,您是一直在生成动态表还是只在提取值?
function savechildinfo(){
var numofchildren = $("#number_children").val();
console.log("CHildrennumber",numofchildren);
var tr = $("#children_td_table").closest('tr');
for(var i =0;i<numofchildren;i++){
var c = "children-"+i+"-child_name";
var d = tr.find(c).val();
console.log("childrenname",d);
}
}