我有一个文本输入和一个输入类型提交的按钮。我已将focusout事件处理程序绑定到输入并单击事件处理程序到按钮。现在当我专注于输入然后按enter
时,会触发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');
})
并将上面的代码写在我在加载文档时调用的一个函数中。
答案 0 :(得分:1)
其IE9问题与HTML按钮标记。
所以我们应该使用HTML输入标签和属性类型作为按钮来尝试。
以上代码可以改写为:
<div >
<span>Local Currency: </span>
<input type='text' id='txtFocusElement' />
<input id="btnClickElement" type="button" value="Add new line" />
</div>
使用此问题我的问题就解决了。
答案 1 :(得分:0)
您可以尝试将选择器更改为输入[type = text]。 只有在关注文本字段时才会触发此操作。
答案 2 :(得分:0)
尝试附加到mouseup
事件而不是click
,这是我现在看到的唯一解决方案
您还可以添加对已按下的鼠标按钮的检查,因此如果用户按下右键则不会触发
var ClickElementEventHandler = function(e) {
if (e.which != 1) return;
//your code
};
$("#btnClickElement").bind("mouseup",ClickElementEventHandler)