2014-10-29 52 views
1

這裏工作是一個fiddle例如

我有麻煩了$(this)與jQueryUI的自動完成信號源功能的工作。 控制檯顯示在發送Ajax請求之前,搜索輸入無法獲取其數據屬性「名稱」。有沒有辦法將變量「name」傳遞給data

$('.input').autocomplete({ 
    source: function (request, response) { 
     var name = $(this).data('name'); 
     console.log(name); 
     $.ajax({ 
      url: url, 
      dataType: "json", 
      data: { 
       'q': request.term, 
       'field': name 
      }, 
      success: function (data) { 
       response($.map(data.query.results.json.json, function (item) { 
        return { 
         label: item.name, 
        } 
       })); 
      } 
     }); 
    }, 
    minLength: 2, 
    select: function (event, ui) { 
     $(this).val(ui.item.label); 
     $(this).val(ui.item.label); 
    }, 
    open: function() { 
     $(this).autocomplete("widget").width(400) 
    } 
}); 
+0

我想,如果你控制檯登錄'$(這)'你會得到自動完成對象。 – vaso123 2014-10-29 19:05:12

回答

1

您應該使用this.element來訪問相應的輸入元素。 this點自動完成實例本身:

var name = $(this.element).data('name');