从 angularJS 控制器将焦点设置到文本框
set focus to textbox from angularJS controller
我正在创建一个我正在使用 angularJS 的网络应用程序,我有一个 jqueryui datepicker ,它看起来像这样
<input type="text" ng-model="rc.reg.mddoj" ng-blur="rc.dojChange()" title="Date Of Joining" placeholder="Date Of Joining" class="form-control" datepicker />
在我的控制器中
r.dojChange = function () {
var currentTarget = event.target;
setTimeout(function () { r.reg.mddoj = currentTarget.value; }, 500);
}
执行此操作后,我想将焦点设置到我的下一个控件
<input type="text" ng-model="rc.reg.mdemail" title="EmailID" placeholder="EmailID" class="form-control validatingData" />
如何设置对来自 angularJS 控制器的元素的控制。
我只想通过指令将焦点设置到我的元素,并想在我的 r.dojChange function()
中调用该指令
要从您的 AngularJS 代码中聚焦一个元素,您必须执行以下操作:
$timeout(function() {
const elementToFocus = $element[0].querySelector(<SELECTOR TO YOUR ELEMENT>);
if (elementToFocus) {
elementToFocus.focus();
}
}, 0);
如果您使用 setTimeout
,则必须使用 $scope.$apply()
以确保对范围的更改得到处理。或者你可以使用 $timeout
:
r.dojChange = function() {
var currentTarget = event.target;
$timeout(function() {
r.reg.mddoj = currentTarget.value;
document.querySelector('[title="EmailID"]').focus(); //<---
}, 500)
}
我正在创建一个我正在使用 angularJS 的网络应用程序,我有一个 jqueryui datepicker ,它看起来像这样
<input type="text" ng-model="rc.reg.mddoj" ng-blur="rc.dojChange()" title="Date Of Joining" placeholder="Date Of Joining" class="form-control" datepicker />
在我的控制器中
r.dojChange = function () {
var currentTarget = event.target;
setTimeout(function () { r.reg.mddoj = currentTarget.value; }, 500);
}
执行此操作后,我想将焦点设置到我的下一个控件
<input type="text" ng-model="rc.reg.mdemail" title="EmailID" placeholder="EmailID" class="form-control validatingData" />
如何设置对来自 angularJS 控制器的元素的控制。
我只想通过指令将焦点设置到我的元素,并想在我的 r.dojChange function()
要从您的 AngularJS 代码中聚焦一个元素,您必须执行以下操作:
$timeout(function() {
const elementToFocus = $element[0].querySelector(<SELECTOR TO YOUR ELEMENT>);
if (elementToFocus) {
elementToFocus.focus();
}
}, 0);
如果您使用 setTimeout
,则必须使用 $scope.$apply()
以确保对范围的更改得到处理。或者你可以使用 $timeout
:
r.dojChange = function() {
var currentTarget = event.target;
$timeout(function() {
r.reg.mddoj = currentTarget.value;
document.querySelector('[title="EmailID"]').focus(); //<---
}, 500)
}