Selecting text on focus using jQuery not working in Safari and Chrome

Viewed 80913

I have the following jQuery code (similar to this question) that works in Firefox and IE, but fails (no errors, just doesn't work) in Chrome and Safari. Any ideas for a workaround?

$("#souper_fancy").focus(function() { $(this).select() });
9 Answers

It's the onmouseup event that is causing the selection to get unselected, so you just need to add:

$("#souper_fancy").mouseup(function(e){
    e.preventDefault();
});

This works fine for input type="text" elements. What kind of element is #souper_fancy?

$("#souper_fancy").focus(function() {
    $(this).select();
});

If anyone comes again across this problem I got here a pure JS solution which is (at the moment) working on all browsers incl. mobile

<input type="text" value="Hello world..." onFocus="window.setTimeout(() => this.select());">

(without setTimeout() it's not working on Safari, mobile Safari and MS Edge)

Related