Текстовое поле фокусировки события и введите проблемы в IE9
У меня есть ввод текста и одна кнопка типа отправки рядом с вводом. Я привязал обработчик событий 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');
})
и написанный выше код в одной функции, которую я вызываю во время загрузки документа.
3 ответа
Его проблема IE9 с тегом кнопки HTML.
Поэтому мы должны попробовать это с тегом ввода HTML с типом атрибута в качестве кнопки.
приведенный выше код может быть переписан как:
<div >
<span>Local Currency: </span>
<input type='text' id='txtFocusElement' />
<input id="btnClickElement" type="button" value="Add new line" />
</div>
Используя это, моя проблема решена.
Попробуйте прикрепить к mouseup
событие вместо click
, это единственное решение, которое я вижу на данный момент
Вы также можете добавить проверку для кнопки мыши, которая была нажата, так что она не будет срабатывать, если пользователь нажмет правую кнопку
var ClickElementEventHandler = function(e) {
if (e.which != 1) return;
//your code
};
$("#btnClickElement").bind("mouseup",ClickElementEventHandler)
Вы можете попытаться изменить селектор на input[type=text]. Это сработает только тогда, когда вы сосредоточитесь на текстовом поле.