2

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

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

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

那么,我怎样才能关闭这种行为呢?我仍然需要退格来消除文本框中的字符,但没有别的了。这里的公司政策:退格是从屏幕上删除字符。不多也不少。

有任何想法吗?

谢谢,

杰森

4

5 回答 5

1

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

window.history.forward();

将它与这样的自定义函数配对

<script type=javascript>

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

</script>

然后在你的调用它<body onLoad="disableBack()">

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

于 2011-06-29T20:39:57.043 回答
0

When a user closes the popup, can you use that onClick event to set the form's focus back to the TextBox? I would think this would allow the user to resume editing the TextBox value.

于 2011-06-29T20:28:43.477 回答
0

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

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

于 2011-06-29T20:25:37.797 回答
0

I see 2 possible solutions :

  1. Trap the keypress in javascript in your page and prevent it from bubbling up.
  2. Remove the popup warning, and use the "display=dynamic" with a summurize validation.
于 2011-06-29T20:30:58.170 回答
0

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

于 2011-06-29T20:32:20.003 回答