2012-04-20 82 views
-1

我有以下函數,它將輸入添加到DOM,併爲它們提供基於屏幕上最後一個的順序ID。然而,它似乎只計算了預編輯的DOM中最後一個實際的數據......例如,如果默認情況下有5個輸入,它會給出所有的新聞和id,而不是6,7,8等。我是否計算添加的數字?jQuery獲取編輯DOM後的最後一個元素

addInput: function() { 

    // Get the last input num 
    $lastNum = $('.inputs input:last-child').length; 

    // Num is last input plus 1 
    $num = $lastNum + 1; 

    // Input HTML 
    $input = '<input type="text" name="iam' + $num + '" id="iam' + $num +'" />'; 

    // Only allow 10 inputs to be added 
    if ($('.inputs input').length > 9) { 
     alert('You can only have a maximum of 10'); 
     return false; 
    } 

    // Append the input to the inputs list 
    $('.inputs').append($input); 

}, 

回答

6

$('.inputs input:last-child').length將始終返回1,「原因只有一個最後一個孩子。改爲使用$('.inputs input').length

0

這是我幾年前在其中一個項目中使用的基本邏輯。

將一個隱藏字段放入可用輸入的計數中。

初始階段隱藏字段= 0。

然後,如果我添加3個新的輸入我的隱藏字段將具有值= 3

我會在數據庫中保存的三個輸入的信息按要求。

當我再次打開頁面時,我將不得不加載三個輸入默認情況下。所以我可以在隱藏字段中傳遞相同的值。

我的功能,增加了新的投入將使用隱藏字段的值,以增加投入......

編輯:

在jQuery中,你必須有一個父塊,其內容全部輸入進去。

所以你也可以在父div中找到輸入。

$(".inputs input:[type=text]").length. 

請參閱本Fiddle

+0

雖然不是我要求它是我將需要處理的後...你能不能或許顯示的一個例子你的意思,因爲我需要建立頁面加載的輸入用戶可能添加的額外信息! – Cameron 2012-04-20 09:34:47

+0

等2分鐘,我準備小提琴。 – Murtaza 2012-04-20 09:39:36

相關問題