2014-03-06 16 views
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形式输入,但不能找出另一种策略,或者如果真的问题。

任何帮助,非常感谢。 感谢

+0

,如果您有多种形式,然后使用表单IDS用于提交事件:'$(” #formID“)。提交(函数(E){)' – goseo

+0

是啊,这是重复的ID有可能您的问题。他们通常都是个坏主意。如果不能修改的ID,你将不得不寻找当前窗体的上下文中的元素,而不是在'document'上下文您当前所在。 – Utkanos

+0

@Reza有道理。但是,我现在需要多次的JavaScript迭代? – SpaceSteak

回答

0

我认为你可以通过所有形式的迭代和separetely提交每一个在其提交事件:

​​
+0

不幸的是,似乎并没有奏效。这被提交的数据仍然只能从第一

。 – SpaceSteak

+0

尝试通过他们的ID提交每个表单! – goseo

相关问题