如何使用angular.element('#id')获取输入元素的值

Ses*_*shu 16 javascript jquery angularjs

当我试图使用angular.element获取input元素的值时,它返回undefined.这是我的代码:

$scope.registerUser = function() {
    console.log(angular.element('#username').value); // undefined
    console.log(document.getElementById('username').value); // sampleName
};
Run Code Online (Sandbox Code Playgroud)

如何使用angular.element获取值

dfs*_*fsq 20

说明

你应该使用val类似于jQuery的方法$.fn.val:

console.log(angular.element('#username').val());
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用value纯HTMLInputELement的属性:

console.log(angular.element('#username')[0].value);
Run Code Online (Sandbox Code Playgroud)

...因为angular.elementinstance是一个类似于数组的类似于HTMLElements的集合,其索引可以访问每个元素.

正确的做法

但是......你不应该在Angular应用程序的上下文中读取这样的输入值.相反,使用ngModel指令并直接将输入值绑定到角度模型:

$scope.registerUser = function() {    
    console.log($scope.username);
};
Run Code Online (Sandbox Code Playgroud)

你有HTML的地方

<input type="text" ng-model="username">
Run Code Online (Sandbox Code Playgroud)