2013-10-15 90 views
0

jQuery newbie在這裏,我有一個表中有2行,這些行中的輸入元素設置爲自動完成,這完美的作品。jQuery追加元素不與自動完成工作

我有一個'添加行'按鈕,當點擊時,jQuery將新行添加到表上,這也可以很好地工作,但問題是自動完成對附加元素不起作用,它們與上面的元素完美地工作。我在這裏錯過了什麼嗎?有沒有辦法解決問題出在哪裏?

代碼如下。

jQuery的

<script> 
$(function() { 

    $(".id").autocomplete(
    { 
     source: "autocomp.php?part=id" 
    }) 

}); 

$(function() { 

    $(".internal").autocomplete(
    { 
     source: "autocomp.php?part=internal" 
    }) 

}); 

$(function() { 

    $(".title").autocomplete(
    { 
     source: "autocomp.php?part=title" 
    }) 

}); 

$(document).ready(function() { 
$('a').click(function() { 
    $('table').append('<tr><td><input name="id" class="id" type="text" /></td><td><input name="quantity" class="quantity" type="text" /></td><td><input name="internal" class="internal" type="text" /></td><td><input name="title" class="title" type="text" /></td><td>&pound;</td><td>&pound;</td></tr>'); 
}); 
}); 
</script> 

和HTML

<table class="products" id="table" border="1" bordercolor="#000000" style="background-color:#FFFFFF; margin-left:5%; margin-top:40px;" width="90%" cellpadding="3" cellspacing="3"> 

    <tr> 
     <td><b>ID</b></td> 
     <td><b>Quantity</b></td> 
     <td><b>Internal Name</b></td> 
     <td><b>Title</b></td> 
     <td><b>Unit Price</b></td> 
     <td><b>Total</b></td> 
    </tr> 

    <tr> 
     <td><input name="id" class="id" type="text" /></td> 
     <td><input name="quantity" class="quantity" type="text" /></td> 
     <td><input name="internal" class="internal" type="text" /></td> 
     <td><input name="title" class="title" type="text" /></td> 
     <td>&pound;</td> 
     <td>&pound;</td> 
    </tr> 

    <tr> 
     <td><input name="id" class="id" type="text" /></td> 
     <td><input name="quantity" class="quantity" type="text" /></td> 
     <td><input name="internal" class="internal" type="text" /></td> 
     <td><input name="title" class="title" type="text" /></td> 
     <td>&pound;</td> 
     <td>&pound;</td> 
    </tr> 
      </table> 

      <a href="javascript:void(0);">Add Line</a> 

在您的幫助非常感謝。

+0

請參閱http://stackoverflow.com/q/3586172/139010和http://stackoverflow.com/q/8209516/139010。 –

+0

@MattBall非常感謝那些人 - 是的,當我在四處搜索時遇到了這些文章,但不幸的是他們沒有包含我的問題的答案。 – AppleTattooGuy

回答

2

添加新的輸入字段後,您需要再次運行autocomplete()函數,因爲它只在舊的輸入元素上運行(當頁面加載時)並且未在新的輸入元素上運行。

+1

欣賞你的答案 - 完美的工作 - 謝謝你幫助一個noob :-) – AppleTattooGuy