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为的特定元素并将焦点设置到该元素,我解决了这个问题。您可以查看此链接:)