2013-06-29 76 views
0

我有一個包含選擇字段id =「projects」的表單,它在被更改時顯示隱藏選擇字段「task」,通過查詢dB動態填充所選項目的任務。然後用戶可以輸入在選項中的proj_id,task_id組合中更新的小時數。以下代碼顯示'項目'更改時選擇'任務'。使用jQuery動態添加行

$('.tasks').hide(); 
$('#projects').change(function(){ 
    $('.tasks').show(); 
    $('.tasks').append("<option>1</option><option>New Task</option>"); 
}); 

我加入點擊一個按鈕,複製形式的功能,每行包含1.select「工程」項目2所示。隱藏選擇「任務」中選擇3隱藏的文本框激活時,新任務選項被選中整個星期的4.小時輸入框。

$('#add').click(function() { 
    $('#row').clone().appendTo('#dynform'); 
}); 

所需的功能是,每個用戶可以添加行,並選擇不同的項目任務組合登錄小時對他們。

這裏的問題是,當我更改第一行項目時,所有添加的行也受到影響,我無法將它們分離出來。我是新來動態改變網頁中的東西。請幫助我。

整個事情的工作小提琴 - http://jsfiddle.net/PuWMK/1/

+0

並不清楚你的問題是什麼? –

+0

基本上每一行元素都需要分開處理,就像他們有自己的Id一樣,我不知道如何實現。如果您在小提琴中添加幾行並選擇一個項目,您會看到我在說什麼 –

回答

1

你可以試試這個

$('.tasks').hide(); 
$('#dynform').on('change' , '#projects', function(){ 
    $(this).next('.tasks').show() 
    .append("<option>1</option><option>New Task</option>") 
}); 

$('#add').click(function() { 
    $('#row').clone().appendTo('#dynform'); 
}); 

$('.tasks').change(function(){ 
    $('#new').css('visibility','visible'); 
}); 

DEMO.

+0

如何在提交時通過$ _POST訪問這些行。我是否需要將它們命名爲項目[]和任務[],如果是的話,我應該如何處理小時已經過去了幾個小時[],我可以把它做成幾小時[] []? –

+0

您的輸入沒有名稱,您必須給出一個名稱,在這種情況下,您可以對每個第一個「textbox」使用一個名稱,如'inputOne []',這樣您就可以在發佈爲'$ inputOneArray = $ _POST ['inputOne']'並且可以執行'foreach'循環。 –