Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过id AngularJS设置焦点_Javascript_Jquery_Html_Angularjs_Angular Material - Fatal编程技术网

Javascript 通过id AngularJS设置焦点

Javascript 通过id AngularJS设置焦点,javascript,jquery,html,angularjs,angular-material,Javascript,Jquery,Html,Angularjs,Angular Material,单击+按钮后,焦点将转移到HTML中的另一个输入字段。我希望将焦点保持在当前输入字段上,除非用户单击另一个输入字段。这时我想将焦点移动到单击的输入字段 <div layout="row" layout-align="center center"> <md-input-container class="md-block" flex="50"> <input required id="circleTimeWordListEditText" ty

单击
+
按钮后,焦点将转移到HTML中的另一个输入字段。我希望将焦点保持在当前输入字段上,除非用户单击另一个输入字段。这时我想将焦点移动到单击的输入字段

<div layout="row" layout-align="center center">
    <md-input-container  class="md-block" flex="50">
        <input required id="circleTimeWordListEditText" type="text" placeholder="Words List" ng-model="circleTime.word"/>

        <div ng-messages="$error">
            <div ng-message="required">This is required.</div>
        </div>
    </md-input-container>
</div>

<div layout="row" layout-align="center center">
    <md-button class="md-raised md-primary" type="submit"
               ng-click="circleTime.onAddButtonClicked()">+
    </md-button>
</div>
我也试过这个,但它给了我鼻子的错误

angular.element('circleTimeWordListEditText').focus();
我也尝试过这个解决方案:

mainApp.factory('focus', function($timeout, $window) {
    return function(id) {
        // timeout makes sure that it is invoked after any other event has been triggered.
        // e.g. click events that need to run before the focus or
        // inputs elements that are in a disabled state but are enabled when those events
        // are triggered.
        $timeout(function() {
            var element = $window.document.getElementById(id);
            if(element)
                element.focus();
        });
    };
});

mainApp.directive('eventFocus', function(focus) {
    return function(scope, elem, attr) {
        elem.on(attr.eventFocus, function() {
            focus(attr.eventFocusId);
        });

        // Removes bound events in the element itself
        // when the scope is destroyed
        scope.$on('$destroy', function() {
            elem.off(attr.eventFocus);
        });
    };
});


onAddButtonClicked : function(elem) {
            //do stuff

            focus('circleTimeWordListEditText');
            /*var temp = document.getElementById('circleTimeWordListEditText');
            alert(temp);
            temp.focus();
            angular.element('circleTimeWordListEditText');
            angular.element('circleTimeWordListEditText').focus();*/
        }
    },
但它也不起作用


这个问题的推荐解决方案是什么?

我认为您可以使用以下代码片段

var myEl = document.getElementById('circleTimeWordListEditText');
var angularEl = angular.element(myEl);

angularEl.focus();

我认为您可以使用以下代码段

var myEl = document.getElementById('circleTimeWordListEditText');
var angularEl = angular.element(myEl);

angularEl.focus();

我也有同样的问题。这对我有用。我希望这对你也有用

function someFunction() 
{
var element = angular.element("#id here");
element.focus()
}
对您而言,以下可能有效:

function onAddButtonClicked() 
{
   var element = angular.element("#circleTimeWordListEditText");
   element.focus()
}

我也有同样的问题。这对我有用。我希望这对你也有用

function someFunction() 
{
var element = angular.element("#id here");
element.focus()
}
对您而言,以下可能有效:

function onAddButtonClicked() 
{
   var element = angular.element("#circleTimeWordListEditText");
   element.focus()
}

我刚刚测试过,它在这里工作。您确定在单击按钮时正在调用您的函数吗?控制器的功能如何?是的。我在执行代码片段时打印日志,我刚刚测试了它,它在这里工作。您确定在单击按钮时正在调用您的函数吗?控制器的功能如何?是的。我在执行代码段时打印日志请告诉我们问题消失的原因。谢谢对我来说,这很有效。我想关注一个特定的元素。因此,我将id添加到其中,通过使用angular.element获取id为的特定元素并将焦点设置到该元素,问题就为我解决了。您可以查看此链接:)请告诉我们问题消失的原因。谢谢对我来说,这很有效。我想关注一个特定的元素。因此,我将id添加到其中,通过使用angular.element获取id为的特定元素并将焦点设置到该元素,我解决了这个问题。您可以查看此链接:)