在jQuery中将值从一个输入传递到另一个输入

时间:2011-08-31 17:44:58

标签: javascript jquery forms

jsFiddle供参考:

http://jsfiddle.net/UxQV7/

我要做的是,如果用户点击第二行的“添加”,则新的表单元素会显示在下面。

然后,用户在新的表单元素中键入一个数字,单击“添加”按钮,然后该数字将填充在第二行的Serial#输入中,然后隐藏新的表单元素。

我遇到问题的部分是用户输入新表单元素的数字后,如何将其发送回第2行。

非常感谢。

5 个答案:

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

在这里摆弄http://jsfiddle.net/qWGKq/

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

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