【发布时间】:2019-03-21 07:19:18
【问题描述】:
我有一个包含多行的表,并且在每一行中我都有一个 id="saveComment" 的表单。 (目标:对于我要添加评论的每一行)
我使用 AJAX 保存数据。 当我添加评论时,我成功地将数据保存在数据库中,以便根据需要在表中添加单个评论。但我还想在当前提交的表单所在的行中添加一个图像元素或显示隐藏的图像或一些文本! (添加了评论 - 显示显示该行有评论的图像或成功文本)。理想情况下,当评论为空时隐藏图像/文本
HTML:
<table>
<tr>
<td id="success"><span id="successmessage" style="display:none;">OK</span></td>
<td>
<form method="post" id="saveComment">
<!-- some form data and submit button -->
</form>
</td>
</tr>
</table>
AJAX:
<script>
var frm = $("#saveComment");
frm.submit(function (e) {
e.preventDefault();
$.ajax({
type: frm.attr('method'),
contentType: "application/json",
crossDomain: true,
async: true,
url: 'test.cgi',
data: $(this).serialize(),
success: function (data) {
alert('Saved!');
$("#successmessage").show();
console.log('Submission was successful.');
console.log(data);
},
error: function (data) {
alert('Error!');
console.log('An error occurred.');
console.log(data);
},
});
});
</script>
如果我在成功函数中添加 ajax 代码 $("#successmessage").show();我只在页面的第一个表单中显示消息,而不是当前提交的表单
如何仅在提交表单的地方显示/添加所需条目的图像或文本?
【问题讨论】:
-
我能知道你到底想要什么吗?
-
@BathriNathan 我想更改一些元素,例如提交后使用jquery显示数据保存成功的消息。现在如果我提交表单 - 正常传输的 ajax 数据,但是例如$("#successmessage").show();在我的 jquery 部分代码中没有以当前提交的形式显示消息,而是以页面的第一种形式显示它
-
@BathriNathan 现在我找到了添加
var id = $(this).attr("id")和$("#successmessage_"+id).show();的解决方案(并将我的跨度更改为<span id="successmessage_45600"- 45600 是一个唯一编号,等于我的表单ID)。但是这个解决方案似乎很难看 -
请检查我的以下答案,它可能会帮助您理解代码的问题。我猜是这样。
标签: javascript jquery html ajax