Wie kann ich eine JS-Funktion automatisch aufrufen, wenn ein zugewiesenes Sitzungsattribut einen Wert an ein ausgeblendetes Eingabefeld in JSP übergibt. siehe bitte unten:Rufen Sie die JS-Funktion auf, sobald die versteckte Eingabe einen Wert aus dem Sitzungsattribut
Java-Klasse:
session.setAttribute("activity1", 1);
session.setAttribute("activity2", 0);
JSP:
<table id="activityTbl" style="width: 100%; border:1px solid black;" align="center">
<thead>
<tr>
<td>Activity1</td>
<td>Activity2</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<div id="actDiv1" style="border:1px solid black;"></div>
</td>
<td>
<div id="actDiv2" style="border:1px solid black;"></div>
</td>
</tr>
</tbody>
</table>
<input type="hidden" id="act1" value="${sessionScope.activity1}"/>
<input type="hidden" id="act2" value="${sessionScope.activity2}"/>
Javascript:
$('#act1').change(function(){
if($(this).val() == '1'){
$('#actDiv1').css('background-color', 'green');
}else{
$('#actDiv1').css('background-color', 'red');
}
});
$('#act2').change(function(){
if($(this).val() == '1'){
$('#actDiv2').css('background-color', 'green');
}else{
$('#actDiv2').css('background-color', 'red');
}
});
Sobald der Wert des verborgenen Feld einen Wert aus der Sitzung übergeben enthält Attribut wird das Skript automatisch ausgeführt. So, nach der Übergabe des Wertes, rufen Sie js Funktion sofort auf.
Vielen Dank für Ihre Hilfe, lassen Sie mich wissen, wenn es andere Erklärungen zu diesem Thema gibt.
Ich bin nicht sicher, aber ist 'JSP' Variable nicht nur einmal geparst, wenn HTML geparst wird? Daher wird Ihr Änderungsereignis nie aufgerufen – Rajesh
Dies wird nicht funktionieren. Die Sitzungsvariable wird in das ausgeblendete Feld eingefügt, wenn HTML generiert wird. Der Server gibt eine HTML-Datei mit diesen Werten aus. Es wird kein Änderungsereignis ausgelöst, da Ihre versteckten Eingaben nicht clientseitig geändert werden. – BackSlash
'Sitzung' bleibt immer am Serverende. Und Ihre JS/Webseite wird auf Client-Seite ausgeführt. Jetzt kompiliert die JSP-Engine Ihre JSP und sendet die HTML-Antwort an den Client-Browser zurück. So wird Code wie '$ {sessionScope.activity1}' immer auf Serverseite ausgeführt. Wann immer HTML-Antwort zum Browser kommt; Diese versteckten Felder sind bereits ausgefüllt. In Ihrem JS-Code müssen Sie nur ihren Wert überprüfen. – vijayP