2013-02-23 50 views
0

我在互聯網上發現了幾個例子,但它們不適合我。 我想對jQuery UI自動填充框的選擇做出反應。 我設法有一個有效的回調結果,但是當我點擊一個條目的選擇事件沒有被解僱。 我的代碼如下所示:JQuery UI:自動完成。對選擇作出反應

 select: function(event, ui) 
    { 
     alert(ui.item.value); 
    } 

響應來自PHP文件。我試圖用的結果只是名稱的通常的JSON數組,並在互聯網上一些研究後,我把它改成一個數組,看起來像這樣:

[{"id":0,"label":"Pinocchio","value":"Pinocchio"}] 

但是,這並不爲我工作的。那麼它有什麼問題?

[編輯]: 在視圖:

$('#search').autocomplete 
    ({ 
     source: 
     function(request, response) 
     { 
     var input = $('#search').val(); 
     $.ajax(
     { 
       type: 'POST', 
       url: '".CController::createUrl('autoComplete')."', 
       data: 
       { 
        string: input 
       }, 
       success: 
         function (data) 
         { 
          response(data); 
         }, 
       dataType: 'json', 
       select: function(event, ui) { 
       alert(ui.item.value); 
       } 
     }); 
     } 
    }) 

是的,該陣列看起來像我張貼以上。但即使它看起來像[「value1」,「value2」],select事件也不會被觸發。奇怪的是,結果顯示,但選擇沒有效果。 所以無論它是自動完成的選擇部分還是數組都沒有正確的形式。但它是否需要某種形式?

+0

我想你應該張貼的完整代碼。你在哪裏初始化插件? '$(「#select-control」)。autocomplete({...});'是你正在談論的'autocomplete'的源數組? – 2013-02-23 13:20:11

回答

1

selectautocomplete事件不是阿賈克斯

$('#search').autocomplete ({ 
    source: function(request, response) { 
     var input = $('#search').val(); 
     $.ajax( { 
      type: 'POST', 
      url: '".CController::createUrl('autoComplete')."', 
      data:{ 
        string: input 
      }, 
      success: function (data) { 
       response(data); 
      }, 
      dataType: 'json' 
     }); 
    }, 
    select: function(event, ui) { //<<---- This should be passed to the `autocomplete` configuration 
     alert(ui.item.value); 
    } 
}) 
+0

哦,夥計!嗯,當然咯!謝謝! :) – Schnodderbalken 2013-02-23 14:12:48