javascript - MVC Ajax 导致回发超出表单范围?

标签 javascript jquery ajax asp.net-mvc

我有一个 MVC 5 项目,我正在使用 Ajax 从 PartialView 加载记录表。在该表内,我有一些调用 jQuery 函数的按钮,但它导致了回发。

在 PartialView 表下方有一个位于表单中的注释部分,因此页面上有一个表单,但不是返回部分 View 表的位置。

我知道如果它在表单中,我会使用 e.preventDefault() 但我在超链接上使用 onlcick 事件并使用 Bootstrap 来制作它看起来像一个按钮。

这是一个超链接和调用的 Ajax。

<a href="#" onclick="ApproveDeny('@item.HomeDirectory', @item.RID, 'A', '@item.ShiftDate.ToShortDateString()', '@Model.CurrentEmployeeId')" 
   class="btn btn-sm btn-success")">
    <i class="fas fa-check-square" aria-hidden="true"></i> Approve
</a>


function ApproveDeny(homeDirectory, rid, arg, shift, empId) {
    $.ajax({
        type: "POST",
        url: homeDirectory + "/Exception/ExceptionApproveDeny/",
        data: { rid: rid, arg: arg, shift: shift, empId: empId },
        success: function (response) {
            $("#exceptionTable").html(response);
        },
        error: function (xhr) {
            if (xhr.status === 500) {
                alert('Error Code: ' + xhr.status + '\nError: Internal Server Error.');
            }
            else {
                alert('Error Code: ' + xhr.status);
            }
        }
    });
};

最佳答案

CSS 类中有一个额外的右括号 ),您可以安全地删除它。另外,您可以使用按钮而不是超链接,并将其类型设置为 button ,如下所示

HTML

<button type="button" onclick="ApproveDeny('@item.HomeDirectory', @item.RID, 'A', '@item.ShiftDate.ToShortDateString()', '@Model.CurrentEmployeeId')" class="btn btn-sm btn-success">
    <i class="fas fa-check-square" aria-hidden="true"></i> Approve
</button>

关于javascript - MVC Ajax 导致回发超出表单范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48669797/

相关文章:

javascript - 从字符串调用函数的正确方法是什么?

javascript - 在较小的窗口或移动版本中单击链接时,Web 浏览器不会滚动到顶部。

javascript - 如何使用两个按钮在 ul 上上下导航?

javascript - 通过 flask 中的 ajax 调用访问 Tornado 中的 cookie

javascript - 将 [object HTMLDocument] 转换为字符串

javascript - Ajax数据发送格式

php - 处理 AJAX 回调

php - 如何使用 AJAX 执行具有多个选择选项的查询?

javascript - 在 JointJS 中显示隐藏元素

javascript - 如何在Jquery中检索表单的所有选择的所有选项?