2011-08-24 57 views
0

我想將自動完成附加到動態生成的輸入框。 我可以通過外部事件(如點擊按鈕)生成這些內容。 但是 在所需情況下,輸入框正在上一個輸入框的ONSELECT事件上生成,該輸入框自動完成附加。Jquery自動完成循環

換句話說,最初我的頁面上有一個輸入框(帶有自動完成)。當選擇一個選項(ONSELECT)時,它會生成另一個輸入框。問題 - 生成的輸入框還應該附加自動完成,其ONSELECT事件應該生成另一個輸入框,並且應該永遠持續下去。

我主要需要這個背後的邏輯。我對語法沒問題。只是不知道如何解決循環問題。

我已經閱讀了這裏需要做同樣事情的其他問題,但在他們的情況下,這些元素是在外部生成的。非常感謝任何幫助。提前致謝。


編輯 - 我是新來的不知道如何發佈代碼formatted- @羅布---感謝。我喜歡你的想法。但是我沒有明白你爲什麼最終使用了.val('')。那麼,它仍然無法正常工作。我也嘗試了其他類似的方法(如將克隆附加到父元素(div#in))。警報顯示在選擇。這意味着選擇事件正在被解僱。下面的代碼 -

$.post("returncategory.php", 
     {}, 
      function(data) 
      { 
       $('.cat').autocomplete({ 
        source: data, 
        type:'json', 
        minchar: 1, 
        fillin: false, 
        onSelect: function() { 
         //alert($(this).parent().get()); 
         //$(this).clone(true, true).appendTo($(this).parent()); 
         //$(this).clone(true, true).appendTo('#in'); 
         $(this).clone(true, true).insertAfter($(this)).val(); 
        } 
       }); 


      }, 
      "JSON"); 

編輯:糾正代碼格式化

編輯:我找到了解決辦法:)非常感謝您的輸入搶! 這是我做的 -

$('.cat').live('click', function() { 

       $(this).autocomplete({ 
       url: "returncategory.php", 
       type: "json", 
       minchar: 1, 
       onSuggest: function() { 

       }, 
       onSelect: function() { 
        $('#clicker').click(); 
       } 
      }); 
      $(this).focus(); 
    }); 

$('#clicker').bind('click', function() { 
    var newItem = $("<br><br><input class='cat' type='text'name='td_products["+1+"]'/>"); 
    $('#in').append(newItem); 
    newItem.find('input').autocomplete({ 
       url: "returncategory.php", 
       type: "json", 
       minchar: 1, 
       onSuggest: function() { 

       }, 
       onSelect: function() { 
        $('#clicker').click(); 
       } 
      }); 

});

P.S.我很高興。現在我也知道如何在這裏發佈格式化的代碼。謝謝!

回答

0

我要說的選擇,你應該抓住jQuery的參考電流輸入,然後做$this.clone(true, true).insertAfter($this).val('')

http://api.jquery.com/clone/

+0

請看我在編輯答覆。謝謝。 – MindHacker

+0

嘗試調試$(this)。確保它指的是#cat輸入,而不是別的。嘗試'onSelect:function(){$(this).remove()}'看看輸入是否消失。我不確定你使用的是哪一個自動完成插件,但我會推薦使用jQuery UI,它非常好 – Rob

+0

好吧,自動完成使用「this.ac」作爲參考,所以下面的代碼開始工作。生成的盒子正在執行自動完成。但是當從第二個框中進行選擇時,第三個框已生成,但不支持自動完成。這裏是代碼----- $('。cat')。自動完成({url:「returncategory.php」, type:「json」, minchar:1, onSelect:function(){ $( this.ac).clone(true,true).insertAfter(this.ac); } }); – MindHacker