在jquery中输入并聚焦事件?

时间:2015-08-31 04:57:35

标签: javascript jquery

我编写了一个blur()事件来处理文本字段上的焦点事件。代码看起来像这样。

$("input[type=text]").blur(function (event) {
    if(this.value){
        //do something
    }
    event.originalEvent.handled = true;
});

我的情况是文本字段会自动获得上一页文本的焦点。

举例来说,在flipkart.com中,在搜索字段中输入一些文字,然后点击搜索。我的event handler必须执行焦点输出事件。 (这是正确的)。

在下一页中,输入的文本在文本字段中预先填充,焦点也在其上。因此,在此页面中,如果我执行某些操作,文本字段将失去焦点,并再次调用相同的事件。我不需要这样做。

有没有办法避免这种情况?通过组合两个事件处理程序?请帮忙。

2 个答案:

答案 0 :(得分:0)

试试这个:您知道上一页的文本值,只需将其与当前文本值进行比较,如果两者相同则不执行任何操作。见下面的代码

ui-icon-arrow-4-diag

答案 1 :(得分:0)

更改您的代码,以便该功能仅绑定到元素明确地与元素交互,如下所示:

$("input[type=text]").on('keyup keypress change click', function() {
  $("input[type=text]").blur(function(event) {
    if (this.value) {
      //do something
      alert('blur was called after interacting with element');
    }
    event.originalEvent.handled = true;
  });
});
$('#test').focus();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="test" value="some value">