JavaScript Focus无法正常工作

时间:2017-05-18 07:46:33

标签: javascript html angularjs focus

Javascript焦点在我的代码中无效。

HTML

<div class="col-md-6" style="border:none; margin-top:2px; padding-right:5px">
    <input type="text" id="edtunt" ng-model="Unit" class="form-control" placeholder="Edit Unit" />
</div>

Javascript

var textbox = document.getElementById('edtunt');
//document.getElementById("edtunt").focus();
document.getElementById("edtunt").focus();
$scope.Unit = unit.name;

3 个答案:

答案 0 :(得分:3)

使用tabindex =&#34; 0&#34;使div可聚焦

    

答案 1 :(得分:1)

您的代码有效:

document.getElementById('edtunt').focus();
<div class="col-md-6">
  <input 
    type="text" 
    id="edtunt" 
    ng-model="Unit" 
    class="form-control" 
    placeholder="Edit Unit">
</div>

此外,在AngularJS应用程序中,您可以添加autofocus属性:

angular
  .module('MyApp', [])
  .controller('MyController', function() {});
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="MyApp" ng-controller="MyController">
  <div class="col-md-6">
    <input 
      autofocus 
      type="text" 
      id="edtunt" 
      ng-model="Unit" 
      class="form-control" 
      placeholder="Edit Unit">
  </div>
</div>

答案 2 :(得分:0)

确实你的代码应该有效。只是一个问题,为什么你这样做:

var textbox = document.getElementById('edtunt');
document.getElementById("edtunt").focus();

而不是:

var textbox = document.getElementById('edtunt');
textbox.focus();

对我来说有用的是确保在设置焦点之前加载整个文档。一个非常简单的方法是使用此复制粘贴JQuery代码:

$( document ).ready(function() {
    var textbox = document.getElementById('edtunt');
    textbox.focus();
});

希望这可能会有所帮助!