2011-08-31 75 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/

相關問題