0
我有多个元素和一些jQuery代码的网页时,被点击的形式之一发送。jQuery和形式多样化,只有第一个作品
形式:
<form method="post" action="">
{% csrf_token %}
<input id="vote" name="vote" type="hidden" value="up">
<input id="post_id" name="post_id" type="hidden" value="{{submission.id}}"/>
<input type="submit" class="arrowup" value=""/>
</form>
的jQuery JavaScript的:
$(document).ready(function() {
$("form").submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "/button_form/",
dataType: "json",
data : {
post_id : encodeURIComponent(document.getElementById('post_id').value),
vote : encodeURIComponent(document.getElementById('vote').value),
csrfmiddlewaretoken: '{{ csrf_token }}'
},
success : function(json) {
$('#result').html('post id: ' + json.post_id + ' voted: ' + json.up_or_down);
},
error: function(xhr,errmsg,err) {
alert(xhr.status + ": " + xhr.responseText);
}
});
return false;
});
});
预期,并得到服务器的JSON响应的第一个按钮的作品,但是其他所有的按钮不起作用。
我导致认为这可能是因为有多个投票和POST_ID形式输入,但不能找出另一种策略,或者如果真的问题。
任何帮助,非常感谢。 感谢
,如果您有多种形式,然后使用表单IDS用于提交事件:'$(” #formID“)。提交(函数(E){)' – goseo
是啊,这是重复的ID有可能您的问题。他们通常都是个坏主意。如果不能修改的ID,你将不得不寻找当前窗体的上下文中的元素,而不是在'document'上下文您当前所在。 – Utkanos
@Reza有道理。但是,我现在需要多次的JavaScript迭代? – SpaceSteak