【问题标题】:How to force blur without calling onBlur event如何在不调用 onBlur 事件的情况下强制模糊
【发布时间】:2012-06-25 15:10:20
【问题描述】:

如何强制模糊,但不调用 JavaScript/jQuery 中的 onBlur 事件?

我会尝试向您描述我需要它的原因:

  • 当调用 onBlur 时,我通过 jQuery 调用 PHP 脚本并验证输入。如果有问题,它会返回一条消息,然后我将其显示在 jQuery 脚本中。
  • 如果未填充模糊字段,脚本应将用户的注意力集中在该字段上。

问题是,如果您按 TAB 更改字段,并且您的第一个字段未填充,脚本会将您聚焦回来,但随后从第二个字段调用 onBlur 也未填充,然后它会导致无限循环。

所以,我想在不调用 onBlur 事件的情况下模糊一个字段并聚焦到另一个字段。

【问题讨论】:

  • 为什么不使用change?并在submit 事件上运行验证。
  • 请不要将焦点强行回到用户试图离开的领域,这如此很烦人。当用户尝试提交时,可以将焦点移回问题字段。

标签: javascript jquery


【解决方案1】:

这不是您问题中指定的答案,但我建议您做的(从某种 UX 角度来看)是取消对无效输入的自动重新聚焦,而是标记无效字段(例如,我可以建议红色吗?)。现在,您可以着手处理(可以说)更简单的防止表单提交无效数据的问题,而不是防止浏览器自然行为类型的事件的问题。

此外,我敢说自动对焦对用户来说烦人。想象一下切换到第二个字段,开始输入,然后突然yoink!你被拖到第一个字段。

【讨论】:

  • 自动重新聚焦不仅对用户来说很烦人,而且跨浏览器的实现也很难用这种设计实现,因为在 iOS5 和 Andriod 2.2 等设备中模糊和聚焦气泡的方式。您会注意到(现在无论如何)公司和企业网站使用您解释的方法,而不是重新关注。 +1
【解决方案2】:

为什么不只使用“更改”和“键位”而不是模糊?

【讨论】:

    【解决方案3】:

    我同意上面 Richard 的观点,没有什么比在打字过程中失去焦点更烦人的了,但是如果您确实需要这样做(由于客户要求等) - 在自动聚焦该字段的代码中,禁用暂时使用 onBlur 功能,直到您聚焦该领域,然后重新启用它。

    【讨论】:

    • 是的,有人也立即击落了我的。没有评论。我提高了你的,因为这不是一个坏主意。有人在拖钓...
    • @Jan ~ 实际上,我在上周的另一个问题中提到了这一点,但我确实注意到过去几周 instant 的反对票更加猖獗。
    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 2015-05-12
    • 2011-07-29
    • 2021-08-11
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    相关资源
    最近更新 更多