Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET:退格键行为_Asp.net_Vb.net_Navigation_Behavior_Backspace - Fatal编程技术网

ASP.NET:退格键行为

ASP.NET:退格键行为,asp.net,vb.net,navigation,behavior,backspace,Asp.net,Vb.net,Navigation,Behavior,Backspace,我正在用ASP.NET和VB.NET编写一个内部intranet应用程序。我的“客户”是初级到中级用户。我们所有的浏览器都是IE8及以上的标准浏览器 这个应用程序工作得很好,除了一件事。退格键。当用户在文本框中键入无效数字时,RegularExpressionValidator和ValidatorCalloutExtender将触发并通知用户。完美的除此之外,当用户关闭弹出警告并注意到光标仍在文本框中闪烁时,他/她感觉是时候按下退格键并删除该讨厌的字段值了 不幸的是,浏览器将此操作解释为希望“返

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

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

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

那么,我如何才能关闭这种行为?我仍然需要退格来消除文本框中的字符,但除此之外什么都不需要。此处的公司政策:退格是从屏幕上删除字符。不多不少

有什么想法吗

谢谢


Jason

在这种情况下,不使用弹出窗口可能是一个好方法


问题是,没有可接受的控件具有焦点,如果不强制将焦点设置为所述控件,浏览器将捕获它。

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

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

  • 在您的页面中捕获javascript中的按键并防止它冒泡
  • 删除弹出警告,并使用带有汇总验证的“显示=动态”

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

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

    window.history.forward();
    
    将其与自定义函数中的

    
    

    
    函数disableBack()
    {
    window.history.forward();
    }
    setTimeout(“disableBack()”,0);
    

    然后在你的


    我想这应该管用,不过我很久以前就用过了。让我知道它是否有效

    使用javascript捕获它是一个可行的选择吗?你能澄清一下“闪烁”的事情吗?光标焦点是通过错误的输入字段获得的?如果是的话,那么奇怪的是浏览器捕捉到了它而不是控件。试着停止身体层面上的冒泡活动。@masfenix:我不知道怎么做文档“object?”@Arthur:“flash”是游标所做的,它是我们在键入时看到的闪烁的散列标记——看起来像这样:|但是闪烁和关闭。明白。请看我下面的评论:由于弹出窗口在设计规范中,不使用它可能会让我被解雇。另外,删除弹出窗口并不能修复退格键的行为。@jason。如果控件没有失去焦点,则退格将影响焦点,而不会影响浏览器窗口。老实说,在今天这个时代,我发现弹出窗口的性质被一些更友好的东西所取代,比如相关的信息“我知道你在说什么”,但是删除弹出窗口是不可能的。我老板的老板写了说明书,我无法逃避。不过,我明白你说的专注是什么意思。@jason。它必须是标准的“警报”吗。如果没有,可能会合并一个使用隐藏div的弹出窗口,类似于“lightbox”来显示其消息。然后,您可以将“关闭”链接附加到该链接,该链接在调用Window.close之前设置焦点。这是一个弹出窗口,只是我们不知道它!试过了,但得到了经典“类型AjaxControlToolkit.ValidatorCalloutExtender没有名为'onclick'的公共属性。不过,谢谢!啊,没关系,我认为解决方案可能比这更棘手-如果你还感兴趣,看看吧。到目前为止,disableBack对我来说已经足够好了。它可能会回来咬我的背后,但我的工作量,我会采取的机会。谢谢