javascript - 取消对文本框的重点

Joe*_*Joe 38 javascript

我有一个带有登录表单的移动模板,它是基于ajax/url hash的浏览.如果在iphone上用户点击iphone键盘上的"go"按钮,ajax会对其进行身份验证/登录,然后将下一页加载到另一个div中,并隐藏当前的登录表单div.

问题是,在iphone上键盘仍然弹出.无论如何通过javascript取消对文本框元素的聚焦?

Xin*_*nt0 69

使用该blur()方法或尝试将焦点设置在链接等其他元素上.

  • 好吧有`blur()`方法 (7认同)
  • `document.activeElement.blur();`非常适合我的情况。 (3认同)

小智 17

这就是我.blur()不想成为我朋友的时候所用的

function blurAll(){
 var tmp = document.createElement("input");
 document.body.appendChild(tmp);
 tmp.focus();
 document.body.removeChild(tmp);
}
Run Code Online (Sandbox Code Playgroud)

  • 这太棒了,而且正是我想要的.我喜欢这个答案,因为它是独立的,只做这一件事,并没有留下任何混乱. (2认同)
  • 巨大的解决方案。 (2认同)
  • 这是唯一有效的方法,但不幸的是它会将页面滚动到最底部。 (2认同)

小智 9

如果你只想模糊没有目标的东西,你可以blur()调用activeElement

document.activeElement.blur();
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以在 javascript 中使用 element.disabled 参数。

例子:

<!DOCTYPE html>
<html>
<body>

Name: <input type="text" id="myText">

<p>Click the button to unfocus the text field.</p>

<button onclick="myFunction()">Unfocus input</button>

<script>
document.getElementById("myText").focus();
function myFunction() {
	
  	document.getElementById("myText").disabled = true;    
    document.getElementById("myText").disabled = false;
}
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

`