【问题标题】:Input text box focus on blur event输入文本框聚焦模糊事件
【发布时间】:2014-01-06 05:26:51
【问题描述】:

实际上,当焦点丢失时,我正在尝试将焦点设置在文本框上。这背后的原因是,如果某些验证失败(如空字段验证)并且验证是,则需要强制将焦点设置在文本框上在该文本框的模糊事件上执行。 我也在小提琴上试过,但似乎焦点在那里,但光标没有闪烁。

Please refer link :http://jsfiddle.net/zHeJY/

请告诉我这背后的原因和解决方案。

提前致谢。

【问题讨论】:

  • 使用$("#inputid").focus();
  • @Krish R:我尝试了相同的方法,但结果也相同。
  • 使用on() 方法。 bind() 在 v1.7 中已弃用。或者干脆使用blur()
  • 这似乎是个坏主意,你在强迫用户输入一些可以验证的东西,而在他们完成之前他们不能专注于其他任何事情?
  • @adeneo : Yaa ..但这实际上是要求。

标签: javascript jquery html


【解决方案1】:

首先:除非验证通过,否则将用户困在输入中是个坏主意!应该允许用户专注于他们想要的任何东西。理想情况下,如果验证失败,您可以阻止表单提交。

问题:(1)您提供的小提琴中没有任何其他元素。 (2) 你没有验证任何东西,只是为模糊焦点循环做一个无限循环!

解决方案

看到这个小提琴:http://jsfiddle.net/zHeJY/7/

只要有适当的验证例程(以及另一个可用的元素),它就会起作用。

HTML

<input id="setFocus"/>
<input id="other" />

JS

$("#setFocus").on("blur", function(e) {
    if (! validate(this)) {
        $(this).focus();
    }
});

【讨论】:

    【解决方案2】:
    <html>
    <head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js">
    </script>
    <script type="text/javascript">
    $( document ).ready(function() {
    $(document).on('blur', "#setFocus", function (e) {
    $(this).focus();
    });
    });
    </script>
    </head>
    <body>
    <input type="text" id="setFocus"/>
    <input type="text" id="set"/>
    </body>
    </html>
    

    【讨论】:

      【解决方案3】:

      试试这个
      HTML

      <div id="something">
      <input type="text" id="setFocus"/>
      <input type="text" id="setFocus1"/>
      </div>
      

      JS

      $("#something").mouseup("blur",function(){
          $(this).children(":first").focus();
      })
      

      你应该有父元素点击任何你会得到所需结果的地方

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-16
        • 2011-12-04
        • 1970-01-01
        • 2011-10-23
        • 1970-01-01
        • 2011-11-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多