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

时间:2015-04-16 19:17:25

标签: javascript jquery angularjs

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

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

如何使用angular.element

获取值

6 个答案:

答案 0 :(得分:19)

解释

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

console.log(angular.element('#username').val());

或者,您可以使用纯HTMLInputELement的<{1}}属性:

value

...因为console.log(angular.element('#username')[0].value); 实例是一个类似于数组的类似于HTMLElements的集合,其索引可以访问每个元素。

正确的方法

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

angular.element

你在HTML中的位置

$scope.registerUser = function() {    
    console.log($scope.username);
};

答案 1 :(得分:2)

这对我有用

angular.element(document.getElementById('username')).val();

答案 2 :(得分:0)

与jQuery中的方式相同,angular.element是一个包装器/子包:

angular.element('#username').val();

答案 3 :(得分:0)

除了以上方式, 这些也可以使用:

angular.element('[id="username"]').val();
angular.element('[id="username"]')[0].value;

答案 4 :(得分:0)

对于AngularJS 2+,您可以使用以下选项。

(<HTMLInputElement>document.getElementsByName("username")[0]).value (<HTMLInputElement>document.getElementsById("username")[0]).value

答案 5 :(得分:0)

在我的angular-7项目中,我使用这些语句解决了问题。

var field = document.getElementById('elementId'); 
var currentValue= field.getAttribute('value');
field.setAttribute('value','newValue');