我在同一个模板中有 2 个表单。一个将国家标签添加到当前用户配置文件中,另一个添加兴趣标签。两种形式都发布到同一个 url。两个标签字段都通过自动完成过滤,因此两个字段都有相应的内容。国家输入将返回国家列表等。
当我通过国家标签字段搜索时,我可以添加一个国家标签。惊人的!但是,当尝试添加兴趣时,spinner.gif 被激活,但在我的控制台中,帖子返回 404,因此没有添加实际的兴趣标签。
模板:其他形式相同,只需将 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 个表单不能在同一个模板中工作吗?如果有人能提供洞察力,将不胜感激。