问题
HTML
<input id="formloginusername" type="text" name="username" placeholder="Username" value="Pre-filled-from-database"></input>
JS:
$(document).ready(function() {
$("#formloginusername").focus();
});
Problem:
The text "Pre-filled-from-database" is highlighted. I only want the cursor to show in the field as if the user had clicked it after the filled text.
Thanks!
回答1:
Here's a nifty little trick...
$(document).ready(function() {
var $field = $("#formloginusername"),
oldVal = $field.val();
$field.focus().val('').val(oldVal);
});
DEMO: http://jsfiddle.net/X7Y8S/
回答2:
Just this will do:
$('#field').focus().val($("#field").val());
回答3:
Hopstream, what I found in Chrome using your method is the cursor ended up at the end of the text. I needed a way to get the cursor focused on the start of the field without highlighting the text. This worked for me:
$('#ElementID').each(function () { $(this).focus(); this.selectionEnd = this.selectionStart; });
来源:https://stackoverflow.com/questions/13371430/jquery-focus-is-highlighting-all-pre-filled-text