【发布时间】:2021-01-09 06:44:09
【问题描述】:
我有以下代码来更新我数据库中的一个字段,该字段名为Flag,它是一个布尔字段。如何在不重新加载页面和重定向的情况下更新 flag 字段。我厌倦了ajax / Jquery,但它第一次工作然后在更新<li>列表中的下一个项目时停止,在下一个列表上单击它在地址栏中显示ID和标志值但不更新记录仅在更新第一个时有效列表中的项目。
<form id="updateflag">
@if (item.Flag == "Off")
{
<input name="ID" type="hidden" value="@item.ID" /> //value changes based on the selected list item
<input name="Flag" type="hidden" value="true" />//value changes based on the selected list item
<button type="submit" class="btn btn-primary"> @(Localizer["Turn Flag On"]) // value changes based on the selected list item</button>
}
@if (item.Flag == "On")
{
<input name="ID" type="hidden" value="@item.ID" />//value changes based on the selected list item
<input name="Flag" type="hidden" value="false" />//value changes based on the selected list item
<button type="submit" class="btn btn-primary"> @(Localizer["Turn Flag Off"])</button>//value changes based on the selected list item
}
</form>
//以上表单ID字段变化
我使用了以下 Ajax/Jquery,它运行一次,然后在下一次尝试时它向我显示了 url 中发布的数据,但没有更新字段
$('#updateflag').submit(function (e) {
e.preventDefault();
let Data = $(this).serialize();
$.post({
type: 'POST',
url: "/Customer/updateFlag",
data: Data,
success: window.location.reload()
})
})
在点击按钮时更新字段值而不重定向并立即显示更新结果的最佳方法是什么?
【问题讨论】:
-
使用AJAX时为什么要重新加载页面?返回结果中的值以及
success: window.location.reload()的位置,这是一种奇怪的语法,有success: function(result) { /* update your field here */ } -
你的意思是你有很多id是updateflag的表单?如果您有多个表单,则 jquery 单击绑定仅适用于第一个表单。您可以尝试为所有表单设置一个类并在 jquery 中使用类选择器,如下所示:
<form id="updateflag" class="update">, jquery:$('.update').submit。 -
@BrandoZhang 是的,你完全正确,可以解决它
标签: javascript jquery asp.net ajax asp.net-core