Lorsque j'essaie d'obtenir la valeur d'élément input en utilisant angular.element, il retourne undefined .
$scope.registerUser = function() {
console.log(angular.element('#username').value); // undefined
console.log(document.getElementById('username').value); // sampleName
};
Comment puis-je obtenir la valeur en utilisant angular.element
Vous devez utiliser val
méthode similaire à $.fn.val
: de jQuery
console.log(angular.element('#username').val());
Vous pouvez également utiliser la propriété value
de HTMLInputELement pur:
console.log(angular.element('#username')[0].value);
... parce que angular.element
instance est une collection de HTMLElements de type tableau avec chaque élément accessible par son index.
Mais ... Vous ne devriez jamais lire une valeur d'entrée comme celle-ci dans le contexte de l'application Angular. Utilisez plutôt la directive ngModel et liez directement la valeur en entrée au modèle angulaire:
$scope.registerUser = function() {
console.log($scope.username);
};
où en HTML avez-vous
<input type="text" ng-model="username">
Ça marche pour moi
angular.element(document.getElementById('username')).val();
En plus des moyens ci-dessus, Ceux-ci peuvent également être utilisés:
angular.element('[id="username"]').val();
angular.element('[id="username"]')[0].value;
De la même manière qu'en jQuery, pour lequel angular.element
est un wrapper/sub:
angular.element('#username').val();