107 votes

Javascript Obtenir l'élément par Id et définir la valeur

J'ai une fonction javascript à laquelle je passe un paramètre. Le paramètre représente l'id d'un élément (un champ caché) dans ma page web. Je veux changer la valeur de cet élément.

function myFunc(variable){
  var s= document.getElementById(variable);
  s.value = 'New value'
}

Lorsque je fais cela, je reçois un message d'erreur indiquant que la valeur ne peut être définie car l'objet est nul. Mais je sais que l'objet n'est pas nul car je le vois dans le code html généré par le navigateur. Quoi qu'il en soit, j'ai essayé de déboguer avec le code suivant

function myFunc(variable){
  var x = variable;
  var y  = 'This-is-the-real-id'
  alert(x + ', ' + y)
  var s= document.getElementById(x);
  s.value = 'New value'
}

Lorsque le message d'alerte s'affiche, les deux paramètres sont les mêmes, mais j'obtiens toujours l'erreur. Mais tout fonctionne bien lorsque je fais

  var s= document.getElementById('This-is-the-real-id');
  s.value = 'New value'

Comment puis-je réparer cela, s'il vous plaît ?

EDIT

L'élément pour lequel je fixe la valeur est un champ caché et l'id est déterminé dynamiquement, lors du chargement de la page. J'ai essayé d'ajouter ceci dans la fonction $(document).ready mais cela n'a pas fonctionné.

1voto

Pandian Points 3355

Essayez comme ci-dessous, cela fonctionnera...

<html>
<head>
<script>
function displayResult(element)
{
document.getElementById(element).value = 'hi';
}
</script>
</head>
<body>

<textarea id="myTextarea" cols="20">
BYE
</textarea>
<br>

<button type="button" onclick="displayResult('myTextarea')">Change</button>

</body>
</html>

0voto

K.I Points 461

Je pense que le problème est la façon dont vous appelez votre fonction javascript. Votre code est comme ça :

<input type="button" onclick="javascript: myFunc(myID)" value="button"/>

myID doit être mis entre guillemets.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X