Oracle APEX - problème pour accéder à un contrôle html à partir d'un état DA

Duchesse de codage:

J'ai un DA personnalisé qui est appelée lorsque l'expression JavaScript est le document et je veux exécuter uniquement lorsqu'une condition du côté client spécifique est remplie.

Je me suis donc la condition côté client à l'expression javascript:

document.getElementById("myfield").options[status.selectedIndex].text != "Closed"

Le problème est que myfieldest pas un élément de page, mais plutôt un contrôle HTML - une boîte de sélection. Je dois donc utiliser l' expression javascript au lieu de Item != Value.

Maintenant , quand je lance la page et de tenter d'exécuter l'action qui active mon DA, la condition est en cours de vérification et des erreurs en disant Cannot read property 'text' of undefined. Comment puis - je changer mon expression pour l' obtenir javaScript au travail?

Et McGhan:

En APEX, $xest une référence abrégée / pointeur document.getElementById, donc vous devriez être en mesure de le faire:

$x("myfield").options[$x("myfield").selectedIndex].text != "Closed"

Lorsque vous utilisez l'expression JavaScript, si vous devez faire plus que simplement une expression de base, vous pouvez utiliser une expression fonction immédiatement Invoqué pour briser la logique. Voici un exemple:

(function(){
  var select = $x('page-item-id');

  if (select.selectedIndex === -1) {
    return false;
  }

  return select.options[select.selectedIndex].text != 'Closed'; 
})()

Sinon, vous pouvez déclarer une fonction dans la fonction et la Déclaration de variable globale attribut de la page puis invoquez comme une expression dans la condition d'un DA.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=369887&siteId=1
conseillé
Classement