【问题标题】:ASP.NET: Backspace Key BehaviorASP.NET:退格键行为
【发布时间】:2011-06-30 04:39:57
【问题描述】:

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

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

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

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

有什么想法吗?

谢谢,

杰森

【问题讨论】:

  • 使用 javascript 捕获它是一个可行的选择吗?
  • 你能澄清一下'闪烁'的事情吗?光标焦点是由错误的输入字段获得的?如果是,那么浏览器捕获它而不是控件就很奇怪。尝试在身体层面停止冒泡事件。
  • @masfenix:我不知道该怎么做。 “文档”对象???
  • @Arthur:“闪烁”是光标的作用,它是我们在输入时看到的闪烁的井号——看起来像这样:|但会闪烁。
  • 明白。请在下面查看我的评论:stackoverflow.com/questions/6526784/…

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


【解决方案1】:

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

window.history.forward();

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

<script type=javascript>

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

&lt;/script&gt;

然后在你的&lt;body onLoad="disableBack()"&gt;中调用它

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

【讨论】:

  • 啊,没关系,我认为解决方案可能比这更棘手 - 如果您仍然感兴趣,请查看 bloggingdeveloper.com/post/…
  • 到目前为止,disableBack 对我来说已经足够好了。它可能会回来咬我,但我的工作量很大,我会抓住机会。谢谢!
【解决方案2】:

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

问题是没有可接受的控件具有焦点,并且如果不强制焦点成为所述控件,浏览器会改为捕获它。

【讨论】:

  • 由于弹出窗口在设计规范中,不使用它可能会让我被解雇。另外,消除弹出窗口不会修复退格键行为。
  • @jason。如果控件没有失去焦点,退格键将影响它而不是浏览器窗口。老实说,在这个时代,我发现这种性质的弹出窗口被一些更友好的东西所取代,例如带有相关消息的
  • 我明白你的意思,但删除弹出窗口是不可能的。我老板的老板写了规格,我无法逃避。不过,我确实明白你所说的专注是什么意思。
  • @jason。它是否必须是标准的“警报”。如果没有,可以合并一个使用隐藏 div 的弹出窗口,类似于“灯箱”来显示它的消息。然后,您可能可以在调用 Window.Close 之前将“关闭”链接附加到此设置焦点。这是一个弹出窗口,只是不像我们所知道的那样!
【解决方案3】:

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

【讨论】:

  • 试过了,但得到了经典的“类型 AjaxControlToolkit.ValidatorCalloutExtender 没有名为“onclick”的公共属性。不过,谢谢!
【解决方案4】:

我看到了 2 个可能的解决方案:

  1. 在您的页面中捕获 javascript 中的按键并防止其冒泡。
  2. 删除弹出警告,并使用带有汇总验证的“display=dynamic”。

【讨论】:

    【解决方案5】:

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

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签