2010-07-21 9 views
1

J'essaie de désactiver un bouton à l'intérieur d'une région de formulaire dans Oracle Application Express (Apex v3) d'une manière ajax-ified. J'utilise jQuery pour accomplir la partie ajax.Désactiver le bouton par programmation dans Oracle Apex à l'aide de javascript/jQuery

$('#P16_MYBUTTON').hide(); 

Faire une source de vue sur la page rendu, j'ai remarqué que le bouton n'a pas d'ID même si Apex je lui ai donné un nom. J'ai scanné le reste du code et j'ai remarqué que les autres éléments avaient un identifiant. Ce comportement est quelque peu confus pour moi.

Des idées?

Répondre

4

Apex 4.0 affecte automatiquement un ID à chaque bouton. Dans 3.x Apex, vous pouvez assigner un vous-même via la propriété Attributs du bouton:

id="P16_MYBUTTON" 

Si le bouton est un bouton HTML alors qui est suffisante pour le faire fonctionner; si le bouton est basé sur un modèle, vous devez vous assurer que la définition du modèle contient le # BUTTON_ATTRIBUTES # chaîne de substitution dans une position appropriée - par exemple:

<a class="myButton" href="#LINK#" #BUTTON_ATTRIBUTES#>#LABEL#</a> 
+0

Merci! Travaillé parfaitement. Quelque chose d'autre que j'ai remarqué est que le style de bouton doit être réglé sur le bouton HTML pour que l'ID apparaisse; On dirait qu'il ne sera pas donné un identifiant si vous utilisez le bouton de modèle. – maximus

+0

Il peut être - voir ma réponse mise à jour. –

3

Je ne sais pas comment Apex fait son rendu chose cependant, vous pouvez utiliser un autre sélecteur JQuery pour localiser le bouton, par exemple, si vous connaissez le nom de la balise ID ou html du parent direct de ce bouton, vous pouvez utiliser quelque chose comme:

$('form > button:first').hide() 

pour référence ultérieure, téléchargez cette carte:

http://refcardz.dzone.com/refcardz/jquery-selectors

+0

+1 Pour la refcard très utile! –

+0

+1 De moi aussi! – maximus