同じテンプレート内に 2 つのフォームがあります。1 つは Country タグを現在のユーザー プロファイルに追加し、もう 1 つは Interest タグを追加します。両方のフォームが同じ URL に投稿されます。両方のタグ フィールドがオートコンプリートによってフィルター処理されるため、両方のフィールドに対応するコンテンツが含まれます。国を入力すると、国などのリストが返されます。
国タグ フィールドを検索すると、国タグを追加できます。素晴らしい!ただし、Interest を追加しようとすると、spinner.gif がアクティブになりますが、コンソール内では投稿が 404 を返すため、実際の Interest タグが追加されません。
テンプレート:他の形式は同じです。ids:Country
をに置き換えるだけInterest
です。
<form id="addCountryTagForm" class="add_tags_form" method="POST" action="/tag/add/">
{% csrf_token %}
<input id="country-tag-input" class="input-text inline required tag-select" name="tagname" type="hidden" />
<button class="btn addtag" type="submit" id="addCountryTag">
<span>Add</span>
</button>
</form>
アヤックス:
$('.add_tags_form').submit(function(e) {
var $this = $(this);
var $loader = $('<div class="tag-loader"><img src="/static/images/misc/spinner.gif" /></div>');
$this.append($loader);
e.preventDefault();
var action = $this.attr("action");
result = $.ajax({
url: action,
data: {
'csrfmiddlewaretoken':$('input[name^="csrfmiddlewaretoken"]').val(),
'tagname':$('input[name^="tagname"]').val()
},
type: "POST",
success: function(data) {
$('.tag-section').load('/account/tag-section/');
$('input[name^="tagname"]').val('');
$loader.remove();
},
error: function(jqXHR, textStatus, errorThrown) {
$loader.remove();
}
});
return false;
});
なぜこれが機能しないのか、私には本当にわかりません。私が達成しようとしていることは達成不可能ですか?同じ URL に投稿する 2 つのフォームが同じテンプレート内で機能しないことはありますか? 誰かが洞察力を提供できれば、それは大歓迎です。