当我做onchange事件时,它进入该函数的验证,但焦点不是我正在使用 document.getElementById('controlid').focus();
我使用的是Mozilla Firefox和谷歌浏览器,两者都无效.我不想要任何IE浏览器.任何人都可以告诉我我的原因是什么.
提前致谢
这是代码:
var mnumber = document.getElementById('mobileno').value;
if(mnumber.length >=10) {
alert("Mobile Number Should be in 10 digits only");
document.getElementById('mobileno').value = "";
document.getElementById('mobileno').focus();
return false;
}
Run Code Online (Sandbox Code Playgroud) 我在 Chrome、移动设备上遇到了一些奇怪的功能。
当我尝试将焦点集中在 chrome 上的某个元素上时,当您尝试仅加载输入、 getItById 并执行 .focus() 时,它不起作用。但是,如果将其包装在附加到按钮的事件侦听器中,并用鼠标单击该按钮,则它可以正常工作。
因此,我试图通过查看是否可以调用 btn.click() 来欺骗它,但这不会激活 .focus()
尝试一下:在移动设备、chrome(至少对于 iOS)上加载页面。您应该收到“已单击”警报,但它不会关注输入。然后,尝试单击该按钮。您将收到警报并且焦点有效。
我发现这很有趣,想看看人们是否知道解决方法。
链接在这里 - jsfiddle
const btn = document.getElementById('button')
btn.addEventListener('click', () => {
alert('clicked')
const input = document.getElementById('input')
input.focus()
})
btn.click()Run Code Online (Sandbox Code Playgroud)
<input id="input" type="text">
<button id="button">Button</button>Run Code Online (Sandbox Code Playgroud)
编辑
我注意到的另一件事是,如果您让手机进入睡眠状态,然后再次打开它,则 focus() 无需单击即可工作。
编辑 2 - 添加了移动设备链接
嗨,谁能告诉我如何通过单击 html 按钮将光标移动到输入文本框中?