触发mouseleave时如何失去对输入文本的关注

时间:2016-08-05 09:24:30

标签: javascript angularjs javascript-events

我的问题是,当触发mouseleave事件时如何失去焦点。 流程如下:

  • 点击输入文字;
  • 写点东西;
  • 保留输入文本(使用鼠标)
  • 输入文字失去焦点,这意味着如果你键入的内容不会 更新文本框内的值;



<input ng-mouseover="$root.gridOptionsForReportErrors.filterFocus()"
       ng-mouseleave="$root.gridOptionsForReportErrors.filterBlur()"
       ng-click="$root.gridOptionsForReportErrors.filterFocus()"
       type="text" 
       class="ui-grid-filter-input ui-grid-filter-input-0 ng-empty ng-touched" 
       ng-model="colFilter.term"
       ng-attr-placeholder="{{colFilter.placeholder || ''}}" 
       aria-label="Filter for column" 
       placeholder="">
&#13;
&#13;
&#13;

在上面的代码中$root.gridOptionsForReportErrors.filterBlur()功能在Chrome中成功触发,就像在IE中一样。

但是输入文字仍然在Chrome中被选中,而在IE中,输入文字会失去焦点,正如预期的那样。

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方法:

  1. 我给了一个输入框的id(发布的那个) id="inputvalerror"
  2. fliterBlur函数中,我通过id搜索了这个input-box元素并调用了blur函数
  3. 像这样:

    $('#inputvalerror').blur();