jsFiddle供参考:
我要做的是,如果用户点击第二行的“添加”,则新的表单元素会显示在下面。
然后,用户在新的表单元素中键入一个数字,单击“添加”按钮,然后该数字将填充在第二行的Serial#输入中,然后隐藏新的表单元素。
我遇到问题的部分是用户输入新表单元素的数字后,如何将其发送回第2行。
非常感谢。
答案 0 :(得分:2)
你可以这样做:
var index;
$(".addSerial").click(function(){
index = $(this).closest('tr').index();
console.log(index);
$("#serialAdd").toggle();
});
$("#submitSerial").click(function(){
$('table tr:eq('+index+') input:first').val($("#serialToAdd").val());
$("#serialAdd").toggle();
});
答案 1 :(得分:1)
当渲染这些控件时,您需要为ID中的每个控件提供一个序列号,这样您就可以轻松识别控件并添加值。
检查此工作样本。 http://jsfiddle.net/UxQV7/18/
答案 2 :(得分:1)
您将不得不在某处(例如,在全局变量中)存储引用值,以指示单击了哪个<a>
以显示序列号条目<div>
或动态创建它然后飞行并将其摧毁。
答案 3 :(得分:1)
将当前行保存在变量中,然后从中过滤文本框以将值设置为:http://jsfiddle.net/UxQV7/1/。
var currentRow; // will be <tr> of row where user has clicked on Add
$(".addSerial").click(function(){
currentRow = $(this).parents('tr'); // set current row
$("#serialAdd").toggle();
});
$("#submitSerial").click(function(){
$("#serialAdd").toggle();
currentRow.find(':text:eq(2)').val($('#serialToAdd').val());
// find correct textbox in row and copy value
});
答案 4 :(得分:1)
您可以使用jQuery的prev()
来获取目标输入并保存它:
var activeField;
$(".addSerial").click(function(){
$("#serialAdd").toggle();
activeField = $(this).prev();
return false;
});
$("#submitSerial").click(function(){
$("#serialAdd").toggle();
activeField.val( $("#serialToAdd").val() );
$("#serialToAdd").val("")
});