我知道很多人为此创建了主题:“在同一页面上处理多个表单”。然而,在阅读了大部分内容之后,我没有找到解决方案。
我有一个列出一些文章的页面。借助滑块,用户可以在每个帖子上打分,然后提交。为了提交与文章关联的标记,我使用了函数 .each() 但我没有得到预期的结果:它是我提交的页面的最后一个表单,无论我提交什么表单。
HTML:
<form method="post" action="" class="vote-form">
<input type="hidden" id="amount" name="amount" class="hidden" value="5" />
<input type="hidden" id="post_id" name="post_id" value="<?php echo get_the_ID(); ?>" />
<input type="submit" name="post_vote" value="VOTE">
</form>
JS:
$( ".vote-form" ).each(function() {
$( this ).submit(function() {
// get all the inputs into an array.
var $inputs = $('.vote-form :input');
// get an associative array of just the values.
var values = {};
$inputs.each(function() {
values[this.name] = $(this).val();
alert(values[this.name]);
});
// ************ Save vote in AJAX *************
// ...
return false;
});
});
当我提交其中一个表单时,警报会显示隐藏输入的每个值。