2013-07-01 2 views
1

Id хотел, чтобы выбрать весь текст от входа на фокусирование:Jquery .select() свойство не работает на фокус события

<input id="selectMe" value="123" /> 
<input type="button" id="focusHim" value="Im working fine" /> 

JS:

$('#selectMe').focus(function() { 
    $(this).select(); 
    console.log('focus fired'); 
}); 

// little test if focus event works fine 
$('#focusHim').click(function() { 
    $('#selectMe').focus(); 
}); 

Этот упрощенный код работает нормально, но иногда есть некоторые проблемы.

Вот вам скрипку: http://jsfiddle.net/daxv2/

Чтобы увидеть мою проблему, пожалуйста, нажмите на входе #selectMe, затем щелкните где-нибудь еще и на #selectMe снова. Вы увидите, что текст выбирается каждую попытку. Я не знаю почему.

P.S. При изменении focus в click он отлично работает:

$('#selectMe').click(function() { 
     $(this).select(); 
     console.log('focus fired'); 
    }); 

Так я предполагаю, что есть какая-то проблема с focus событием.

ответ

1

Похоже, браузеры WebKit мешают этому из-за события mouseup.

Я добавил это, и это, кажется, работает нормально:

$('#selectMe').mouseup(function() { 
    return false; 
}); 

http://jsfiddle.net/daxv2/6/

+0

[плагиат] (http://stackoverflow.com/questions/480735/select-all-contents-of-textbox-when-it -receives фокус-на JavaScript или JQuery-!) – billyonecan

+0

@billyonecan, так что вы говорите, потому что кто-то написал это, это значит, что я не могу прийти к такому же выводу? –

+0

Нет, это было больше, потому что это то же слово за слово – billyonecan

1

Вы можете использовать click событие вместо focus. Он отлично работает, и вы можете упростить код, используя this.select() вместо $(this).select() http://jsfiddle.net/daxv2/8/

+0

Я знаю о событии 'click', но спасибо за' this.select() '! – Kasyx

Смежные вопросы