Javascript 选择输入=文本中的所有文本
以下代码正在执行此操作:当用户按[Enter]时,它将跳转/切换到下一个文本框Javascript 选择输入=文本中的所有文本,javascript,jquery,html,input,Javascript,Jquery,Html,Input,以下代码正在执行此操作:当用户按[Enter]时,它将跳转/切换到下一个文本框 $(function () { $('input:text:first').focus(); var $inp = $('input:text'); $inp.bind('keydown', function (e) { //var key = (e.keyCode ? e.keyCode : e.charCode); var key = e.which;
$(function () {
$('input:text:first').focus();
var $inp = $('input:text');
$inp.bind('keydown', function (e) {
//var key = (e.keyCode ? e.keyCode : e.charCode);
var key = e.which;
if (key == 13) {
e.preventDefault();
var nxtIdx = $inp.index(this) + 1;
var nextTextBox = $(":input:text:eq(" + nxtIdx + ")");
nextTextBox.focus();
}
});
});
以上代码运行良好
但是,我接下来要做的是自动突出显示文本框中的所有文本。我就是这么做的:
$(function () {
$('input:text:first').focus();
var $inp = $('input:text');
$inp.bind('keydown', function (e) {
//var key = (e.keyCode ? e.keyCode : e.charCode);
var key = e.which;
if (key == 13) {
e.preventDefault();
var nxtIdx = $inp.index(this) + 1;
var nextTextBox = $(":input:text:eq(" + nxtIdx + ")");
nextTextBox.focus();
nextTextBox.setSelectionRange(0, nextTextBox.value.length);
}
});
});
但是,它不起作用。您知道如何修补在焦点跳转到下一个文本框后自动突出显示所有文本的代码吗
$(":input:text:eq(" + nxtIdx + ")")
此选择器返回一个数组,因此您可以使用[0]索引或使用val()获取值,该值将返回与选择器匹配的第一个元素
你可以用
$(“:input:text:eq(+nxtix+”)[0]
或$(“:input:text:eq(+nxtix+”)).val()
$(函数(){
$('input:text:first').focus();
var$inp=$('input:text');
$inp.bind('keydown',函数(e){
var-key=e.which;
如果(键==13){
e、 预防默认值();
var nxtix=$inp.index(this)+1;
如果($(“:输入:文本:eq(“+nxtix+”))。长度>0){
$(“:输入:text:eq(“+nxtix+”).focus();
$(“:input:text:eq(+nxtix+”)[0]。setSelectionRange(0,$(“:input:text:eq(+nxtix+”)[0]。value.length)
}
}
});
});代码>
它已修复。非常感谢。$(输入)。选择()
将自动处理.focus()。设置选择范围(0,长度)代码>@kaido是的,这是一个很好的建议