4

我有一个弹出窗口中的表单,我已经设置了 autofocus 属性autofocus="autofocus",但是当表单加载时它没有聚焦但是如果你刷新页面它会聚焦。表单被插入到div.

表格样本:

First Name:<input type="text" name="fname" placeholder="First Name" class="userField" autofocus="autofocus" id="firstNameUserField" value="<?php 
    if(isset($_SESSION['firstname'])){
       echo trim($_SESSION['firstname']);
    }
  ?>">

div表单插入:

  <div class="main">
    <a href="#x" class="overlay" id="detail_form"></a>
    <div class="popup">
      <div id="detailFormPopup"></div>
      <a class="close" id="logClose"href="#close"></a>
    </div>
  </div>

如果用户登录并单击其用户名,则会显示表单:

if(isset($_SESSION['username'])){
          echo "<a href='#detail_form' class='navlinks' id='navUser'>".$_SESSION['username']."</a></h3>";
        }
4

2 回答 2

3

解决“自动对焦只在页面刷新时起作用”的问题

在您的文件中进行以下更改:-

//In module.ts file 

import { AutofocusModule } from 'angular-autofocus-fix';

@NgModule({
imports: [
AutofocusModule
],

//In package.json file add the dependencies as:- 

    "dependencies": {
    "angular-autofocus-fix": "^0.1.0"
}
于 2018-07-09T10:07:02.710 回答
2

autofocus将仅适用于页面中最初的元素,而不适用于使用 Javascript 加载的元素。

您可以在用于呈现 SimpleModal 的 Javascript 代码中强制获得焦点,将其添加到onShow事件中:

$('#firstNameUserField').focus();

您没有在问题中包含用于打开弹出窗口的 Javascript,因此这只是一个一般示例:

$("#popupEl").modal({onShow: function (dialog) {
 $('#firstNameUserField').focus();
}});
于 2013-04-03T23:45:33.120 回答