2009-11-11 98 views
0

我已經創建了添加表格行的代碼,並嘗試將第三方SuggestBox函數綁定到每個動態生成的表單字段。如何綁定和取消綁定第三方jQuery庫函數?

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#form1').validationEngine(); 
    var newRowNum = 1; 
    $(".addRow").click(function(){ 
     var $newTr = $("#tb1 tbody>tr:last").clone(true); 
     $newTr.find('input[id^=foods]').unbind(jsonSuggest()); <== try to unbind the previouse jsonsuggest() 
     //$newTr.find('.jsonSuggestResults').remove(); 
     $newTr.appendTo("#tb1 tbody"); 
     $('input[id^=foods]', $newTr).val(''); 
     $newTr.find('input[id^=foods]').each(function(){ 
      $(this).jsonSuggest(
        function(text, wildCard, caseSensitive, notCharacter) { 
         rez = $.ajax({ 
          type: 'GET', 
          url: 'getFoodJSON.jsp', 
          data: 'foods=' + text, 
          dataType: 'json', 
          async: false 
         }); 
         return eval(rez.responseText); 
         }, 
         { ajaxResults:true 
         }); 
     }); 
     $newTr.find('input[id^=supplyDate]').each('id', function(){ 
      $(this).datepicker({dateFormat:'yy-mm-dd'}); 
     }); 
    }); 
}); 

然而,SuggestBox建議積累重複。下面是結果,當我輸入的東西在7行...

link text

你介意告訴我如何解除綁定的前一行+表單字段應用的功能?謝謝。

回答

0

通過書寫unbind(jsonSuggest()),你是調用jsonSuggest並解除它返回的值的綁定。除非jsonSuggest函數是一個返回處理程序方法(它可能不是)的生成器,這不是你想要的。如果是這樣,那還不是你想要的,除非它每次都返回相同的處理程序。

你想(我假設)通過編寫unbind(jsonSuggest)解除jsonSuggest函數本身,而沒有括號。