相关疑难解决方法(0)

如何防止退格键导航回来?

在IE上,我可以使用(非常非标准但可以正常工作)jQuery来实现这一点

if ($.browser.msie)
    $(document).keydown(function(e) { if (e.keyCode == 8) window.event.keyCode = 0;});
Run Code Online (Sandbox Code Playgroud)

但有可能以一种适用于Firefox的方式,或以跨浏览器的方式获得奖金吗?

作为记录:

$(document).keydown(function(e) { if (e.keyCode == 8) e.stopPropagation(); });
Run Code Online (Sandbox Code Playgroud)

什么也没做.

$(document).keydown(function(e) { if (e.keyCode == 8) e.preventDefault(); });
Run Code Online (Sandbox Code Playgroud)

解决了问题,但是在页面上呈现退格键不可用,这比原始行为更糟糕.

编辑:我这样做的原因是我不是创建一个简单的网页,而是一个大型的应用程序.因为你在错误的地方按下退格键而失去10分钟的工作是令人难以置信的烦恼.通过防止退格键导航回来,防止错误与烦人用户的比例应该高于1000/1.

编辑2:我不是想阻止历史导航,只是意外事故.

EDIT3:@brentonstrines评论(因为这个问题非常受欢迎而搬到这里):这是一个长期的'修复',但你可以抛弃你的支持Chromium bug来改变webkit中的这种行为

javascript firefox jquery internet-explorer cross-browser

268
推荐指数
10
解决办法
20万
查看次数

三(3)个等号

可能重复:
JavaScript === vs ==:我使用哪个"相等"运算符是否重要?

我在这里问了另一个问题并得到了一个很好的答案如下:

$(document).on("keydown", function (e) {
  if (e.which === 8 && !$(e.target).is("input, textarea") || $(e.target).is('[readonly]')) {
      e.preventDefault();
  }
}); 
Run Code Online (Sandbox Code Playgroud)

注意===if语句中的三个等号.我一直认为你只需要两个等号==来表示javascript/jQuery if语句.这三个人有什么理由吗?

UPDATE

对不起,重复的问题 - 我搜索但没有找到任何好问题.我想我使用的是错误的搜索字词.

javascript jquery

31
推荐指数
2
解决办法
3万
查看次数

使用jQuery编辑表单时确认离开页面

我正在编写一个表单,我需要像stackoverflow这样的函数:"你已经开始编写或编辑帖子了."

我已经查看了stackoverflow的代码,看看他们是如何做到这一点的,但我根本没有把它应用到我的简单表单中.这就是他们对question.js的看法:

function initNavPrevention(b) {
    if (b.which == "undefined") {
        return
    }
    var a = $("#wmd-input");
    a.unbind("keypress", initNavPrevention);
    setConfirmUnload("You have started writing or editing a post.", a)
}
Run Code Online (Sandbox Code Playgroud)

其中一个函数触发了这个(我不知道c是什么):

if (c) {
    e.keypress(initNavPrevention)
}
Run Code Online (Sandbox Code Playgroud)

最后他们必须setConfirmUnload(null);禁用它我想.

我的情况很简单.我有一个页面,我加载了一个<form />通过AJAX,我想阻止加载此表单离开页面而不点击SUBMIT按钮或如果用户单击取消,表单被禁用,预防将不会弹出.

拥有此代码,有人可以告诉我如何将其包含在我的网站上吗?

这是我加载表单的AJAX函数:

$("#projects_historics_edit_part_1").click(function(){
    $("#ajax-loader").fadeIn('normal');

    $.ajax({
        url: BASE_URL + 'projects/ajax/get_historics_edit_part_1/' + PROJECT_ID,
        type: "POST",
        success: function(data) {
            $("div#projects_historics_part_1").html(data);

            $("#client").autocomplete(client_autcomplete_options);

            var inicofin = $("#initdate, #findate").datepicker(initdate_datepicker_options);
        }
    });

    $("#ajax-loader").fadeOut("normal");

    return false;    
});
Run Code Online (Sandbox Code Playgroud)

先感谢您!

jquery

18
推荐指数
2
解决办法
3万
查看次数