web-dev-qa-db-fra.com

Pourquoi la valeur de mon élément ne change-t-elle pas? Suis-je en train d'utiliser la mauvaise fonction?

J'ai une application mvc asp.net et j'essaie d'attribuer dynamiquement de la valeur à ma zone de texte, mais elle ne semble pas fonctionner (je teste uniquement sur IE pour le moment). C'est ce que J'ai maintenant ..

document.getElementsByName('Tue').Value = tue; (d'ailleurs la mar est une variable)

J'ai également essayé cette variante mais cela n'a pas fonctionné non plus.

document.getElementsById('Tue').Value = tue; (d'ailleurs la mar est une variable)

Quelqu'un peut-il me dire où je me trompe?

22
devforall

C'est document.getElementById , pas document.getElementsByID

Je suppose que vous avez <input id="Tue" ...> quelque part dans votre balisage.

18
Paul Dixon

Comment adresser votre zone de texte dépend du code HTML:

<!-- 1 --><input type="textbox" id="Tue" />
<!-- 2 --><input type="textbox" name="Tue" />

Si vous utilisez l'attribut 'id':

var textbox = document.getElementById('Tue');

pour "nom":

var textbox = document.getElementsByName('Tue')[0]

(Notez que getElementsByName () renvoie des éléments all avec le nom comme tableau, nous utilisons donc [0] pour accéder au premier)

Ensuite, utilisez l'attribut 'value':

textbox.value = 'Foobar';
23
Ferdinand Beyer

Si vous utilisez Chrome, déboguez avec la console. Appuyez sur MAJ + CTRL + j pour afficher la console à l'écran.

Croyez-moi, ça aide beaucoup.

5
KnightScott

Il y a deux problèmes dans votre code.

  1. Utilisez getElementByName au lieu de getElement**s**ByName
  2. utilisez le value en minuscules au lieu de Value.
5
Kalai

On dirait que nous devons supposer que le nom et l'ID de votre zone de texte sont tous deux définis sur "Mar". Si tel est le cas, essayez d'utiliser un V en minuscule sur .value.

4
Jeff Handley

Comme le pluriel dans getElementsByName() l'indique, retourne-t-il toujours la liste des éléments qui portent ce nom. Donc, quand vous avez un élément d'entrée avec ce nom:

<input type="text" name="Tue">

Et c'est le premier avec ce nom, vous devez utiliser document.getElementsByName('Tue')[0] pour obtenir le premier élément de la liste des éléments avec ce nom.

A côté de cela, les propriétés sont sensibles à la casse et l'orthographe correcte de la propriété value est .value.

4
Gumbo

Vous pouvez utiliser

formname.textboxname.value="delete";
4
ChintanThummar