文本框聚焦事件并在IE9中输入问题

Text box focusout event and enter issues in IE9

本文关键字:IE9 输入 问题 聚焦 事件 文本      更新时间:2024-03-05

我有一个文本输入,输入旁边有一个submit类型的按钮。我已经将focusout事件处理程序绑定到输入,并将事件处理程序单击到按钮。现在,当我专注于输入,然后按下enter时,focusout事件处理程序将被触发,按钮事件处理程序也将被触发。我只想在文本框焦点丢失时触发focusout。我该怎么办?

代码:-

 <div >
     <span>Local Currency: </span>
     <input type='text' id='txtFocusElement'  />
     <button id="btnClickElement" >
         <span> Add new line</span>
     </button>
 </div>

我使用选择器作为:

 $("#txtFocusElement").bind("focusout", function() {
      console.log('focusout');
 })
 $("#btnClickElement").bind("click", function() {
      console.log('click');
 })

并在加载文档时调用的一个函数中编写了上述代码。

HTML按钮标签的IE9问题。

因此,我们应该尝试使用属性类型为按钮的HTML输入标记。

上述代码可以重写为:

<div >
     <span>Local Currency: </span>
     <input type='text' id='txtFocusElement'  />
     <input id="btnClickElement" type="button" value="Add new line" />
</div>

用这个解决了我的问题。

您可以尝试将选择器更改为input[type=text]。只有当您将注意力集中在文本字段上时,才会触发此操作。

尝试附加到mouseup事件而不是click,这是我目前看到的唯一解决方案

你也可以添加一个鼠标按钮被按下的检查,这样,如果用户按下右键,它就不会启动

var ClickElementEventHandler = function(e) {
    if (e.which != 1) return;
    //your code
};
$("#btnClickElement").bind("mouseup",ClickElementEventHandler)