javascript - Internet Explorer 11 根据开发人员工具是否打开以不同方式处理 jQuery

标签 javascript jquery internet-explorer-11

我有一个 jQuery $.ajax POST,仅当开发人员工具打开时才会在 IE11 上触发。它在 Chrome 和 Edge 上运行良好。触发它的代码如下:

$(".edit").click(function () {
        data = "id=" + $(this).attr("cart") + "&num=" + $("input.num").val();
        $.ajax({
            url: '@Url.Action("Edit","Cart")',
            data: data,
            type: "POST"
        }).done(location.reload());
    });

无论如何,另一个页面上的另一个 POST 仍然有效。以下代码创建它:

$(".add").click(function () {
        var nums = [
            $(this).attr("item_id"),
            $(this).attr("quote_id"),
            $(this).attr("quantity_amount"),
            $(this).attr("cus_no")
        ]
        data = $.validator.format("item_id={0}&quote_id={1}&quantity_amount={2}&cus_no={3}", nums);
        $.ajax({
            url: '@Url.Action("Add","Cart")',
            data: data,
            type: "POST"
        });
    });

我完全迷失了。

最佳答案

您做错了几件事,这可能会导致问题

首先使用var data = Somethinghere而不是data = somehere

其次,在第一个示例的done方法中,像这样使用

.done(function () { window.location.reload() });

而不是

.done(location.reload());

还有一件事,记住它作为一个规则,如果声明新变量,总是使用 var ,也使用分号(在 num 数组的末尾添加一个分号)。 IE 中会发生这种奇怪的事情,因为它执行更严格的验证。

关于javascript - Internet Explorer 11 根据开发人员工具是否打开以不同方式处理 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35802996/

相关文章:

javascript - div html不包含ajax帖子中的输入值

JQueryUI 模式对话框覆盖另一个模式对话框

javascript - 如何在文档标题上添加 (1) 文本通知

html - Flexbox 自动边距不适用于 justify-content : center in IE

Angular 应用程序未在 ie 11 中呈现并给出 SecurityError 和 SyntaxError

html - IE11 : <select> up/down button size

javascript - 如何在数组中正确使用 axios 参数

php - 使用 PHP 调用 Javascript 函数

javascript - jQuery - 动画闪烁? (IE8)

javascript - 滚动时背景颜色闪烁