ASP.NET:退格键行为

时间:2011-06-29 20:23:07

标签: asp.net vb.net navigation behavior backspace

我正在ASP.NET和VB.NET中编写内部Intranet应用程序。我的“客户”是初级到中级用户。我们所有的浏览器都是IE8及以上标准版。

该应用程序运行良好,除了一件事。退格键。当用户在文本框中键入无效数字时,会触发RegularExpressionValidator和ValidatorCalloutExtender并通知用户。完善。除此之外,当用户关闭弹出警告并注意到光标仍在文本框中闪烁时,他/她认为是时候点击退格键并删除那个讨厌的字段值。

不幸的是,浏览器将此操作解释为希望“返回”页面历史记录。我的老板在尖叫。他的老板在尖叫。我很头疼。

那么,我该如何关闭此行为?我仍然需要退格来消除文本框中的字符,但没有别的。公司政策:退格键是从屏幕上删除字符。没什么,没什么。

有什么想法吗?

谢谢,

杰森

5 个答案:

答案 0 :(得分:1)

您可以尝试禁用缓存,但这可能会影响性能。我认为有一个javascript函数可以解决它:

window.history.forward();

将其与自定义函数配对

<script type=javascript>

function disableBack() { window.history.forward(); } setTimeout("disableBack()", 0);

</script>

然后在<body onLoad="disableBack()">

中调用它

我认为这应该有效,但我很久以前就用它了。让我知道它是否有效!

答案 1 :(得分:0)

在这种情况下,也许不使用弹出窗口是一种很好的方法。

问题在于没有可接受的控件具有焦点,并且没有强制将焦点称为控制,浏览器将会捕获它。

答案 2 :(得分:0)

当用户关闭弹出窗口时,您是否可以使用该onClick事件将表单的焦点设置回TextBox?我认为这将允许用户继续编辑TextBox值。

答案 3 :(得分:0)

我看到了两种可能的解决方案:

  1. 在您网页的javascript中捕获按键,防止它冒泡。
  2. 删除弹出警告,并使用“display = dynamic”和summurize验证。

答案 4 :(得分:0)

如果光标在文本框中闪烁,则退格也应该由输入框处理,而不应该传播到文档对象或窗口对象。如果是,则需要调试或使用this技术来停止文档级别的传播