2011-08-31 29 views
1

的jsfiddle供参考:从一个输入传值到另一个jQuery的

http://jsfiddle.net/UxQV7/

我想要做的是,如果“添加”在第2行,新形式的用户点击元素显示在下面。

然后,用户类型在该新形式元素的数目,点击“添加”按钮,则该数字将在第二行的串行输入#和新形式元素被填充然后是隐藏的。

我有麻烦的部分是曾经在数到新的表单元素的用户类型,我怎么知道该发回的第二排。

非常感谢。

+2

当用户在当前显示新行的同时单击另一行上的“添加”时会发生什么?旧的添加尝试是否被遗忘,或者用户是否可以同时为N行创建添加框?在这种情况下,我认为你会更好地使用jQuery UI对话框。 – Tejs

+0

这是一个好主意。谢谢。 – wkm

+0

感谢大家的建议! – wkm

回答

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(); 
}); 

小提琴这里http://jsfiddle.net/qWGKq/

1

当这些控件呈现你必须ID这样你可以很容易地识别控件,并添加值的序列号,每个控制。

检查这方面的工作样本。 http://jsfiddle.net/UxQV7/18/

1

你将不得不存储参考值的地方(在一个全局变量,例如),表示该<a>被点击,显示序列号进入<div>或在飞行中动态创建它,之后摧毁它。

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 
}); 
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("") 
}); 

演示:http://jsfiddle.net/7Xykw/

相关问题