相关疑难解决方法(0)

document.getElementById(id).focus()不适用于firefox或chrome

当我做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)

javascript

54
推荐指数
6
解决办法
14万
查看次数

当未通过单击激活时,.focus() 在 Chrome 移动设备上不起作用。解决方法?

我在 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 javascript

10
推荐指数
2
解决办法
6921
查看次数

如何通过单击 html 按钮将光标移动到输入文本框中?

嗨,谁能告诉我如何通过单击 html 按钮将光标移动到输入文本框中?

html javascript dom

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

javascript ×3

html ×2

dom ×1