Javascript 如何在输入中更改焦点

Javascript 如何在输入中更改焦点,javascript,Javascript,场景是,当用户按enter键时,我需要更改输入的焦点。 输入类型为日期。例如,当焦点在“天”上,用户按enter键时,焦点应更改为月份(与按tab键时完全相同) 也许这个剪报可以帮助解决这个问题: 首先,我尝试通过querySelectorAll获取下一个元素,但下一个元素是下一个输入,而不是输入中的下一个数字 函数focusNextElement(){ //添加我们希望包含在选择中的所有元素 可变聚焦元件= 'a:not([disabled]),按钮:not([disabled]),输入:n

场景是,当用户按enter键时,我需要更改输入的焦点。 输入类型为日期。例如,当焦点在“天”上,用户按enter键时,焦点应更改为月份(与按tab键时完全相同)

也许这个剪报可以帮助解决这个问题:

首先,我尝试通过querySelectorAll获取下一个元素,但下一个元素是下一个输入,而不是输入中的下一个数字

函数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。