我正在ASP.NET和VB.NET中编写内部Intranet应用程序。我的“客户”是初级到中级用户。我们所有的浏览器都是IE8及以上标准版。
该应用程序运行良好,除了一件事。退格键。当用户在文本框中键入无效数字时,会触发RegularExpressionValidator和ValidatorCalloutExtender并通知用户。完善。除此之外,当用户关闭弹出警告并注意到光标仍在文本框中闪烁时,他/她认为是时候点击退格键并删除那个讨厌的字段值。
不幸的是,浏览器将此操作解释为希望“返回”页面历史记录。我的老板在尖叫。他的老板在尖叫。我很头疼。
那么,我该如何关闭此行为?我仍然需要退格来消除文本框中的字符,但没有别的。公司政策:退格键是从屏幕上删除字符。没什么,没什么。
有什么想法吗?
谢谢,
杰森
答案 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)
我看到了两种可能的解决方案:
答案 4 :(得分:0)
如果光标在文本框中闪烁,则退格也应该由输入框处理,而不应该传播到文档对象或窗口对象。如果是,则需要调试或使用this技术来停止文档级别的传播