web-dev-qa-db-fra.com

Appel de fonction Javascript avec Thymeleaf

J'ai besoin d'appeler une fonction javascript sur le modèle thymeleaf, quelque chose comme ceci:

Cas 1: 

<select th:onclick="${'function1('a')'}">

Mais dans ce cas la thymeleaf ne fonctionne pas .. il y a quelques recherches (y compris stackoverflow) j'obtiens les "solutions" suivantes:

Cas 2: 

<select th:onclick="${'function1(''a'')'}">

Cas 3: 

<select th:onclick="${'function1(\'a\')'}">

Cas 4: 

<select th:onclick="${'function1(\''+'a'+'\')'}">

Mais dans tous les cas, je reçois la même erreur: "... Exception lors de l'évaluation de l'expression SpringEL ..."

Mon problème concerne les appels javascript, j'ai besoin de mettre quelques paramètres $ {var} pour l'appel en fonction js. Comment je peux résoudre ce problème?

Merci

11
f4root

Si vous n'avez pas besoin de vars dynamiques dans l'appel de fonction JS, voici comment procéder:

th:onclick="'alert(\'a\');'"

Cela échappe simplement aux guillemets simples et ne nécessite aucun SpringEL (vous pouvez bien entendu vous passer de l'attribut thymeleaf dans ce cas et utiliser simplement plain onclick). 

Pour y insérer des vars:

th:onclick="'alert(\'' + ${myVar} + '\');'"

Utilisé la fonction d'alerte pour me permettre de l'essayer et de prouver que cela fonctionne. J'espère que cela pourra aider.

37
Tom Bunting

Vous devez appeler la fonction javascript mentionnée ci-dessous. 

th:onclick="'javascript:function1(\''+ ${a} +'\');'"

Je pense que cela pourrait vous aider.

4
Newbie

Essaye ça.

th:onclick="${'javascript:functionXXX(' + obj.id + ')'}"
3
Tinily

Envoi de deux valeurs dans JS:

function openGate(IP,Port) {
   // Some operations with parameters IP and Port
}


<button id="open" type="button" th:onclick="'openGate(\'' +${gate.gateIp} +'\',\''+${gate.gatePort}+'\')'"  class="btn btn-warning">Open the gate</button>

Dans thymeleaf onclick, nous utilisons des quotas pour les paramètres. Ainsi, la page sourse semble 

<button id="open" type="button" onclick="openGate('192.168.10.10','9938')"  class="btn btn-warning">Open gate</button>
0
ToT McKid