2014-02-21 27 views
1

我正在嘗試jquery,並且在使用我在網上找到的腳本時遇到了問題。創建的文本字段在點擊時失蹤

輸入要創建的文本字段的數量後,文本字段出現,但一旦我點擊它們就會消失。我非常感謝這方面的幫助。謝謝!

$(function() { 

var input = $('<input type="text" />'); 
var newFields = $(''); 

$('#qty').bind('blur keyup change', function() { 
    var n = this.value || 0; 
    if (n+1) { 
     if (n > newFields.length) { 
      addFields(n); 
     } else { 
      removeFields(n); 
     } 
    } 
}); 

function addFields(n) { 
    for (i = newFields.length; i < n && i<20; i++) { 
     var somestr = "Length of Sample "; 
     var num = i+1; 
     var newInput = input.clone(); 
     newFields = newFields.add(newInput);   
     $('#newFields').append(somestr+num+":"); 
     newInput.appendTo('#newFields'); 
    } 
} 

function removeFields(n) { 
    var removeField = newFields.slice(n).remove(); 
     $('#newFields').remove(); 
    newFields = newFields.not(removeField); 
} 
}); 
+1

小提琴怎麼樣? – royhowie

回答

0

我想你的函數只能綁定到blur,這是當輸入字段不再被選中

$('#qty').bind('blur', function() { 
    ... The function ... 

Demo

有點玩了我發現它後在第一次刪除後刪除一些對象時出現了一些錯誤。我搞砸了一段時間,但後來決定最簡單的方法是不要單獨使用addremove,而只使用set方法。 Check out the demo,它完美的作品。唯一的缺點是,你不保留舊的輸入(所以他們的領域將是空的每刷新)

+0

感謝您的幫助。用另一個數字代替初始數字後,文本字段不會被創建。再次感謝! – user3338267

+0

我意識到你在說什麼,如果你輸入一個數字,點擊關閉,然後輸入一個更小的數字。現在修復它 –

+0

@ user3338267更新我的答案與解決刪除錯誤 –

相關問題