【发布时间】:2014-11-13 16:42:15
【问题描述】:
我正在尝试向我的博客 cmets 添加投票按钮。我正在循环浏览每条评论:
.row
for comment in Comments
.row
p #{comment}
.votecell(style='width:30px;float:left;margin-left: 15px;')
.voteUp(id='#{comment.id}', style='margin-bottom: -17px;') ▲
form.form-horizontal(id='voteUp', enctype="multipart/form-data", method='POST')
input(type='hidden', name='_csrf', value=_csrf)
input(type='hidden', name='commentID', value='#{comment.id}')
<br>
然后使用 jQuery 我尝试提交作为被单击按钮的子级的表单。
$(".voteUp").click(function () {
var form = $(this).closest(".form-horizontal")
$(function(){
$.ajax({
url: '/voteUp', //the URL to your node.js server that has data
type: 'POST',
data: form.serialize()
}).done(function(data){
});
});
});
问题是无论点击哪个 voteUp 按钮,它总是从页面上的第一条评论提交表单。我知道这是因为在 jQuery $(this) == this[0] 中,但我不确定还有哪些其他选项可用于引用单击的对象。有谁知道我如何获取点击按钮的子窗体?
这是 html 输出的样子:
<div id="5463ce6bd6e5e5d403e80b3f" style="margin-bottom: -17px;" class="voteUp">
▲
<form enctype="multipart/form-data" method="POST" class="form-horizontal">
<input type="hidden" name="_csrf" value="4JbLbnEcRvq7ZuAhpZCXavMq7JW/vnIZlxW/o=">
<input type="hidden" name="commentID" value="5463ce6bd6e5e5d403e80b3f">
</form>
</div>
【问题讨论】:
-
那个奇怪的符号是什么?
-
如果您发布生成的 HTML 块会很有帮助
-
请显示示例输出 html 而不是服务器代码。
voteUp似乎没有出现在开头的表单中 -
它的玉。 jade-lang.com
-
您似乎为每个表单赋予了相同的“id”值,这可能会导致问题。
标签: javascript jquery html forms pug