javascript - 有什么方法可以使用 JavaScript *不*将焦点设置在任何 HTML 元素上?

标签 javascript android html mobile

我有一个移动注册表单,其中包含用户用户名、密码和密码确认字段的 HTML 输入元素。由于这是一个移动网络应用程序,并且我试图节省屏幕空间,因此我选择放弃在每个元素上方放置 HTML 标签,而是利用占位符属性来指示在每个字段中输入的内容:。

<input id="id_username" placeholder="Choose a username" type="text" />                
<input id="id_password1" name="password1" placeholder="Choose a password" type="password" />
<input id="id_password2" name="password2" placeholder="Confirm password" type="password" />

最初,我添加了一些 JavaScript,以便在用户到达页面时将焦点放在用户名字段上:

<script type="text/javascript">
    document.getElementById("id_username").focus()
</script>

这工作得很好,只是在旧版本的默认 Android 浏览器中,这会导致占位符消失。由于缺少占位符(和标签)可能会导致用户不清楚在该字段中输入什么内容,因此我删除了 JavaScript。然而,即使没有那个 JS,我注意到 Android 浏览器仍然将焦点放在第一个表单字段中,这再次删除了标签。有什么方法可以对页面进行编码,以便保证没有浏览器(包括默认的 Android 浏览器)将焦点放在这些字段中的任何一个上?不需要额外库的技术会更好,因为我试图将页面大小和额外请求保持在最低限度。

谢谢。

最佳答案

有时,用手编写一些简单的功能会更快。查看 js fiddle 中的示例。如果您愿意,可以用 native javascript 替换 jquery。

https://jsfiddle.net/ShinShil/y7o8mrwh/2/

var placeholder = 'enter something';
$(document).ready(function() {
  $('.placeholder').val(placeholder);
    $('.placeholder').focusin(function() {
    if($(this).val() == placeholder && $(this).hasClass('opacity')) {
      $(this).val('');
      $(this).removeClass('opacity');
    }
  });
  $('.placeholder').focusout(function() {
    if($(this).val() == '') {
        $(this).val(placeholder);
      $(this).addClass('opacity');
    }
  });
});

关于javascript - 有什么方法可以使用 JavaScript *不*将焦点设置在任何 HTML 元素上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38884710/

相关文章:

javascript - 防止appcache缓存当前页面

javascript - 如何简化underscore.js中的两个嵌套findWhere?

javascript - 如何使用 Prototype 插入 &lt;script&gt;?

android - 触发几个高优先级通知后 Firebase 推送通知延迟

javascript - 在 javascript/jquery 中根据 div 类型从低到高对 div 数组进行排序

html - 如何根据屏幕尺寸将背景图像更改为背景视频,可能使用 Bootstrap 4

javascript - 使用 Javascript Loop 检测类似单选按钮的变化,然后执行代码

javascript - 使用 JQuery 获取动态创建的选择下拉框的值

android - 在构建签名的 apk ExternalSystemException : String index out of range: -97 时出错

android - 在 Canvas onDraw 上绘图有效,在 TouchEvent 上绘图无效