Текстовое поле фокусировки события и введите проблемы в 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]. Это сработает только тогда, когда вы сосредоточитесь на текстовом поле.

Другие вопросы по тегам