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 Ltdは.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

dictselect コールバック関数が呼び出されたとき、変数は未定義です。

あなたはただ使うことができますui.item.value

于 2012-06-04T21:25:18.293 に答える