2010-01-15 6 views
2

Je veux désactiver/activer un bouton avec Javascript. Parce que le Javascript est appelé, après qu'une animation Flash est rendue, le bouton existe au moment de l'exécution.Get élément en div avec Javascript

Le bouton est dans une hiérarchie:

<html><body><form#form1><div#control><asp:Button#Export1> 

J'ai essayé pendant des heures pour obtenir une référence à ce bouton, mais rien (document.getElementById ("Export1")/document.getElementById ("form1") .getElementById ("control"). getElementById ("Export1")/et bien d'autres) semble fonctionner.

Comment obtenir une référence à ce bouton (afin de changer btnref.disabled = true)?

Merci beaucoup pour votre aide!

Répondre

2

Avez-vous essayé un clic droit dans le document et en sélectionnant « voir la source » pour voir comment ce code rend réellement? Un asp:Button est un contrôle serveur qui est traduit dans un champ de saisie pendant le rendu. Pendant ce temps, l'ID du champ ne sera pas exactement ce que vous avez défini dans votre aspx.

Vous pouvez utiliser Export1.ClientID sur le serveur pour obtenir l'ID du contrôle.

+0

Ceci (et la réponse suivante) fonctionnent ... Je le savais, mais je l'ai tout simplement oublié -_- Merci beaucoup! – powerbar

+0

heureux d'entendre ça a fonctionné pour vous. pour la petite histoire, pour la plupart d'entre nous les messages sont triés par votes, et dans le même nombre de votes, les messages apparaissent dans un ordre aléatoire, donc nous ne pouvons pas savoir à quoi vous vous référez quand vous dites la réponse suivante '=) –

1

Si c'est le seul bouton dans votre div, cela devrait fonctionner:

var btnref = document.getElementById("controls").getElementsByTagName("button")[0]; 
+0

un 'asp: Button' rend un type' d'entrée = « bouton » ', pas' button', et c'est une hypothèse largement inutile de faire sur le DOM * et * un moyen lent de trouver l'élément, quand il a en effet un identifiant. Tout changement futur du site, ou même un simple script greasemonkey pourrait facilement casser cette approche, par exemple. –

0

Habituellement le id du bouton ne restera pas le même dans la source de la page. Cliquez sur view source dans le code HTML et recherchez ce tag pour trouver le nouvel identifiant. Vous pouvez ensuite utiliser cet identifiant quelque chose comme:

document.getElementbyId("Export1_some_unique_id")... 
+1

s'il serait préférable de ne pas coder en dur l'identifiant pour la raison même qu'il varie. 'document.getElementById ('<% = Export1.ClientID%>');' serait une façon de le faire. le codage en dur de l'ID peut entraîner la rupture du script pour des raisons que l'utilisateur aurait pu penser totalement sans rapport avec le script, comme la mise à niveau des versions de framework, qui dans certaines versions apporte des modifications mineures dans la façon dont les ID sont générés. –