0

我正在尝试添加一个项目(基金)。自动完成成功显示所有资金。它应该检索fund.id与该“基金”相对应的内容。如果我能对此有所了解,将不胜感激……

只是要明确一点:我没有收到具体的错误。如果 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 Ltd123fund.id1

发布数据

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
4

1 回答 1

0

dict调用选择回调函数时,该变量未定义。

你可以只使用ui.item.value.

于 2012-06-04T21:25:18.293 回答