Comme il y a un scintillement lorsque vous utilisez setTimeout, il existe une autre solution basée sur les événements. De cette façon, l'événement 'focus' attache l'événement 'mouseup' et le gestionnaire d'événements se détache à nouveau.
function selectAllOnFocus(e) {
if (e.type == "mouseup") { // Prevent default and detach the handler
console.debug("Mouse is up. Preventing default.");
e.preventDefault();
$(e.target).off('mouseup', selectAllOnFocus);
return;
}
$(e.target).select();
console.debug("Selecting all text");
$(e.target).on('mouseup', selectAllOnFocus);
}
Puis filer le premier événement
$('.varquantity').on('focus', selectAllOnFocus);
0 votes
Je veux un comportement exact dans le safari de l'iPad/iPhone. Cela ne fonctionne pas avec les navigateurs iPod/iPhone. La réponse acceptée ci-dessous s'applique uniquement à Chrome/safari sur ordinateur.
5 votes
Remarque : la réponse acceptée ici ne résout que la moitié du problème. Elle fait fonctionner la sélection, mais il est difficile de la désélectionner ensuite avec les clics suivants. Une meilleure solution peut être trouvée ici : stackoverflow.com/questions/3380458/