【问题标题】:.Net - Disabling going back one page when user clicks "Backspace" keyboard button.Net - 当用户单击“Backspace”键盘按钮时禁用返回一页
【发布时间】:2011-11-11 13:40:37
【问题描述】:

基本上有时我需要显示一个预先填充了记录的表单。根据用户的权限,他可能会也可能不会编辑数据。

我遇到的问题是,有时用户会尝试编辑已禁用的文本框,方法是单击它并点击“退格”按钮来编辑文本。这会导致浏览器返回一页...烦人。

【问题讨论】:

  • 您希望如何将此行为与喜欢使用键盘导航并真正希望返回的用户区分开来?现在你要惹恼他们了。

标签: javascript browser navigation


【解决方案1】:

如果是 asp .net,你可以这样做:

<script language=javascript>   

    function cancelBack()   
    {   
        if ((event.keyCode == 8 ||    
           (event.keyCode == 37 && event.altKey) ||    
           (event.keyCode == 39 && event.altKey))   
            &&    
           (event.srcElement.form == null || event.srcElement.isTextEdit == false)   
          )   
        {   
            event.cancelBubble = true;   
            event.returnValue = false;   
        }   
    }   

</script>   
<body onkeydown=cancelBack()>   

【讨论】:

    【解决方案2】:

    您需要在 javascript 中捕获键盘事件并阻止它执行。您使用的服务器端代码 (ASP.NET) 没有影响。

    window.onkeydown = function(event) {
     if(event.keyCode == 8)
        return false;
    }
    

    刚刚在 Chrome 中测试过,它似乎可以工作

    【讨论】:

    • 你有一个严重的错字,代码应该是 window.onkeydown = function (event) { if (event.keyCode == 8) { return false; } }
    【解决方案3】:

    如果有的话,把它放在文档准备功能中

    window.onkeydown = function (event) 
    {
              if (event.keyCode == 8) {
                  return false;
              }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多