Javascript 如何在输入中更改焦点
场景是,当用户按enter键时,我需要更改输入的焦点。 输入类型为日期。例如,当焦点在“天”上,用户按enter键时,焦点应更改为月份(与按tab键时完全相同) 也许这个剪报可以帮助解决这个问题: 首先,我尝试通过querySelectorAll获取下一个元素,但下一个元素是下一个输入,而不是输入中的下一个数字Javascript 如何在输入中更改焦点,javascript,Javascript,场景是,当用户按enter键时,我需要更改输入的焦点。 输入类型为日期。例如,当焦点在“天”上,用户按enter键时,焦点应更改为月份(与按tab键时完全相同) 也许这个剪报可以帮助解决这个问题: 首先,我尝试通过querySelectorAll获取下一个元素,但下一个元素是下一个输入,而不是输入中的下一个数字 函数focusNextElement(){ //添加我们希望包含在选择中的所有元素 可变聚焦元件= 'a:not([disabled]),按钮:not([disabled]),输入:n
函数focusNextElement(){
//添加我们希望包含在选择中的所有元素
可变聚焦元件=
'a:not([disabled]),按钮:not([disabled]),输入:not([disabled]),[tabindex]:not([disabled]):not([tabindex=“-1”]);
if(document.activeElement&&document.activeElement.form){
var focussable=Array.prototype.filter.call(
document.activeElement.form.querySelectorAll(focussableElements),
功能(元素){
//检查可见性,同时始终包括当前activeElement
返回(
element.offsetWidth>0||
element.offsetHeight>0||
元素===document.activeElement
);
}
);
var index=focussable.indexOf(document.activeElement);
如果(索引>-1){
var nextElement=可聚焦[索引+1]| |可聚焦[0];
nextElement.focus();
}
}
}
有什么想法吗?Ciao,这是一个符号学的例子,但让您了解如何在输入时选择文本。函数
createSelection
发挥了神奇的作用。通过按enter键,通过传递要选择的输入参考
、开始
和结束
位置,将选择月份
关注输入,然后单击Enter
var input=document.getElementById(“myText”);
input.addEventListener(“键控”,函数(事件){
如果(event.keyCode===13){
event.preventDefault();
createSelection(输入,3,5);
}
});
函数createSelection(字段、开始、结束){
如果(field.createTextRange){
var selRange=field.createTextRange();
selRange.collapse(真);
selRange.moveStart('character',start);
selRange.moveEnd('character',end);
selRange.select();
field.focus();
}else if(field.setSelectionRange){
field.focus();
field.setSelectionRange(开始、结束);
}else if(typeof field.selectionStart!=“未定义”){
field.selectionStart=开始;
field.selectionEnd=结束;
field.focus();
}
}
请共享代码。您可以共享更多详细信息吗?给定的代码有什么问题?问题是:输入元素的类型(“日期”)不支持选择。Ciao,正如您所说,输入类型“日期”不支持选择。据我所知,如果要通过单击enter选择月份,唯一的解决方法是将输入类型设置为text。