2014-10-23 3 views
10

ho bisogno di chiamare una funzione javascript thymeleaf modello, qualcosa di simile:JavaScript chiamata di funzione con Thymeleaf

Caso 1:

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

Ma in questo caso il thymeleaf non funziona .. alcuni Ricerche da fa (compresi StackOverflow) ottengo i seguenti "soluzioni":

caso 2:

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

Caso 3:

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

Caso 4:

Ma in tutti i casi ottengo lo stesso errore: "... Eccezione valutando espressione Springel ..."

Il mio problema è sulle chiamate javascript, ho bisogno di mettere alcuni parametri $ {var} per la chiamata nella funzione js. Come posso aggiustarlo?

Grazie

risposta

30

Se non è necessario alcun Vars dinamici nella chiamata di funzione JS, questo è come farlo:

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

Questo sfugge semplicemente le virgolette singole e non richiede alcuna Springel (di Ovviamente potresti rinunciare all'attributo thymeleaf in questo caso e utilizzare semplicemente onclick).

Per inserire vars in esso:

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

utilizzato la funzione di allarme per permettermi di provare e dimostrare che funziona. Spero possa aiutare.

+1

Grazie, questo concetto funziona per me, ho fatto uso: th: attr = "onchange = 'javascript: addAttr (\' '+ $ {} poi.id +' \ 'this.value)' " – balancin

+0

Grande, felice di aver aiutato. Grazie per aver accettato la risposta. –

4

È necessario chiamare la funzione javascript come indicato di seguito.

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

Penso che questo potrebbe aiutarti.

+0

come inviare se ha due valori all'interno della funzione? – rajadilipkolli

3

Prova questo.

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