1

我的注册页面有两种形式;当您在移动浏览器上访问该页面时(在 Android 和 iOS 上已确认),它会自动聚焦第二个表单中的第一个输入元素并打开键盘,跳过第一个表单。

我想要的只是完全停止自动对焦,因为它跳过了一些预注册说明。(尽管理解为什么/如何发生这种情况以及为什么选择第二种形式来关注也是很好的!)

  • 两种形式都没有autofocus设置属性
  • 我试过添加id="top"和链接到/signup#top- 没有区别
  • $(window).scrollTop(0)在页面呈现后运行(出于不相关的原因) - 没有区别
  • 我正在使用 Meteor / Blaze 和语义 UI
  • 第一个表格是我自己的,第二个表格是userAccounts包注册表单
<div class="ui segment">
  <p>Information that is skipped past</p>

  <form class="ui form" id="welcomeFormEmail">
    <input type="email" name="preLaunchEmail" placeholder="Your email address">
    <button type="submit">Submit</button>
  </form>

<div class="at-pwd-form">
  <form id="at-pwd-form" action="#" method="POST" class="ui large form">
    <div class="ui stacked segment">
      <div class="at-input required field">
        <div class="ui fluid input icon">
          <input type="email" id="at-field-email" name="at-field-email" placeholder="Email" autocapitalize="none" autocorrect="off">
        </div>
      </div>

<!-- Various other fields -->
<!-- Various other fields -->
<!-- Various other fields -->

    <input type="submit" class="at-btn ui fluid large primary button" id="at-btn" value="Register">
  </div>
</form>
</div>
</div>

任何想法为什么会发生这种情况以及如何阻止它?

4

1 回答 1

2

您可以使用模糊

如果您只有一个文本输入,您可以使用 getElementById 获取它并将其设置为模糊

 document.getElementById("myAnchor").blur();

但是如果您有多个文本输入,则此循环会获取页面上的每个输入并禁用对所有输入的关注

var elelist = document.getElementsByTagName("input"); for(var i = 0; i < elelist.length; i++){
    elelist[i].addEventListener("focus", function(){
        this.blur();
    }); }
于 2017-02-02T00:53:51.457 回答