专注于有价值的输入字段

我专注于jQuery的输入字段:

$("input:text").focus(); 

输入字段中已存在一些文本值。 当我对焦时,光标在最后一个字母后面闪烁,我如何将光标放在第一个字母的前面?

你可以使用我为你创建的这个小插件(从这个脚本修改):

 jQuery.fn.setCaret = function (pos) { var input = this[0]; if (input.setSelectionRange) { input.focus(); input.setSelectionRange(pos, pos); } else if (input.createTextRange) { var range = input.createTextRange(); range.collapse(true); range.moveEnd('character', pos); range.moveStart('character', pos); range.select(); } }; // usage: $('input:text').setCaret(0); 

演示: jsbin.com/iwetu3/2

添加selectionStart使其更加crossbrowser

 jQuery.fn.setCaret = function (pos) { var input = this[0]; if (input.setSelectionRange) { input.focus(); input.setSelectionRange(pos, pos); } else if (input.createTextRange) { var range = input.createTextRange(); range.collapse(true); range.moveEnd('character', pos); range.moveStart('character', pos); range.select(); } else if(input.selectionStart){ input.focus(); input.selectionStart = pos; input.selectionEnd = pos; } }; // usage: $('input:text').setCaret(0);