1 回答
TA贡献1911条经验 获得超7个赞
问题很简单。你的选择器和 id 不是唯一的
id 只能为一个元素定义,多个/相同元素上的相同 id 会导致此问题。
链接标签对所有记录都有一个共同的 ID,它必须是唯一的。
使 ids 唯一,我添加了 @post.Id 和 ids,这将使每个都唯一
<div class="reaction">
<a class="btn text-green" href="#" method="post" onclick="sendVote(@post.Id, true)"><div class="icon ion-thumbsup" id="upVotes_@post.Id">@post.UpVotes</div></a>
<a class="btn text-red" href="#" method="post" onclick="sendVote(@post.Id, false)"><div class="fa fa-thumbs-down" id="downVotes_@post.Id">@post.DownVotes</div></a>
</div>
在你的js中通过添加id来更改选择器
function sendVote(postId, isUpVote) {
var json = { postId: postId, isUpVote: isUpVote };
$.ajax({
url: "/api/votes",
type: "POST",
data: JSON.stringify(json),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
$("#upVotes_"+postId).html(data.upVotes); // change here
$("#downVotes_"+postId).html(data.downVotes);
}
});
}
并且对于 myform 也做同样的事情,您不需要表单的 id,但如果您只想将 @post.Id 添加到 id,
<form id="myForm" class="myform" asp-controller="Comment" asp-action="Create" method="post">
<input type="hidden" name="PostId" id="postId" value="@post.Id" />
<textarea name="text"></textarea>
<input type="submit" value="Submit Comment" />
</form>
如果将 id 更改为 class 以使其动态,
$('.myForm').each.ajaxForm(function () {
// $(this) will give you access to the specific form only
alert("You have just posted a comment");
document.location.reload(true);
});
- 1 回答
- 0 关注
- 101 浏览
添加回答
举报