Дважды вызывается 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, время: 08:37. |