Дважды вызывается blur
Надеюсь, что объясню понятно, и проблема окажется простой...
Идея - при нажатии клавиши "enter" в текстовом поле запускается обработчик события blur, который выполняет определенные действия. Проблема - обработчик события запускается дважды. Вот что я делаю не так - не понятно :( $(document).ready( function() { $("#testText").keypress(function(e){ if(e.keyCode == 13) {$("#testText").blur();} }); $("#testText").blur(function(){ alert(1); }) }); |
Нажатие на Enter в текстовом поле и так вызовет blur. Можете просто отменить действие по умолчанию, вызвав e.preventDefault() в теле вашего условия.
|
Цитата:
Добавление e.preventDefault() не помогает, что естественно для этого случая. |
еще бы ему не сработать, правильно делает что срабатывает..
Вы открываете алерт, который выводит фокус из элемента и срабатывает блюр |
<input id="testText" type="text" /> <div id="debug">0</div> <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <script> $(document).ready( function() { $("#testText").keypress(function(e){ if(e.keyCode == 13) {$("#testText").blur();} }); $("#testText").blur(function(){ var el = document.getElementById('debug'); el.innerHTML = parseInt( el.innerHTML ) + 1; }) }); </script> |
skfyann,
таки да, срабатывает только change, причём конечно надо поменять что то. |
devote,
Спасибо, понял в чем проблема. |
Часовой пояс GMT +3, время: 09:29. |