2012-06-04 26 views
0

我想添加一個項目(基金)。自動填充成功顯示所有資金。它應該檢索對應於該「基金」的fund.id。如果我可以得到另一組眼睛,這將不勝感激...jQuery自動完成不想發送特定的POST數據

只是要清楚:我沒有得到一個具體的錯誤。如果POST中沒有「基金」,我的觀點就會重定向。我只是想弄清楚爲什麼我的自動完成不會發布基金POST值'(fund.id)。

- 謝謝你提前

模板

<script type="text/javascript" src="{{ STATIC_URL }}js/autocomplete/add_fund_autocomplete.js"></script> 
... 
<form method="POST" action="/profile/edit/"> 
{% csrf_token %} 
     <input type="hidden" name="fund" id="id_fund" /> 
     <div class="inline-block"> 
      <label for="id_omnibox">Fund</label> 
      <input id="id_omnibox" name="omnibox" placeholder="Enter a fund name or search for an existing..." type="text" /> 
     </div> 
     <div class="input-prepend inline-block"> 
      <label for="id_amount">Allocation</label> 
      <span>$</span> 
      <input id="id_amount" name="amount" type="text" placeholder="Enter amount" /> 
     </div> 
     <button class="add" type="submit" name="add_position">Add</button> 
</form> 

add_fund_autocomplete.js

$(document).ready(function() { 
    $.get('/autocomplete/funds/', function(data) { 
     var completions = new Array(); 
     var dict = JSON.parse(data, function(key, value) { 
      completions.push(key); 
      return value; 
     }); 
     $('#id_omnibox').autocomplete({ 
      source: completions, 
      minLength: 2, 
      select: function(event, ui) { 
       $('#id_fund').val(dict[ui.item.value]); 
      } 
     }); 
    }); 
}); 

(自動完成)查看

@login_required 
def funds(request): 
    funds = Fund.objects.exclude(name='Placeholder') 
    result = {} 
    for fund in funds: 
     result[fund.name] = str(fund.id) 
    return HttpResponse(json.dumps(result)) 

例如: 添加基金Hoth Ltd爲$ 123量。 Hoth Ltd的fund.id應該是1

POST數據

POST 
--------------------------------------------------------- 
Variable    Value 
--------------------------------------------------------- 
fund     u'' #empty? :\ 
csrfmiddlewaretoken u'436f77eb2023043be2f5242bb0443d80' 
omnibox    u'Hoth Ltd' 
amount     u'123' 
add_position   u'' #Just a trigger used in my view 

回答

0

可變dict未定義當選擇調用回調函數。可以使用ui.item.value

+0

做'ui.item.value'不是訣竅。我有一個確切的自動完成,可以在其他地方完美工作。出於某種原因,這是唯一給我帶來麻煩的自動完成功能。也許你已經指出了我正確的方向。感謝您的意見。 – Modelesq