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