2016-12-29 9 views
-1

Ich habe eine Anforderung, eine JavaScript-Funktion in c: Foreach aufzurufen. Bitte gib mir eine Idee, wie ich anrufen soll. Ich werde durch usertremetrackersummary innerhalb foreach Schleife und müssen JavaScript-Funktion für jede Schleife aufrufen.Rufen Sie Javascript von c: foreach

Nun wird JavaScript-Funktion jede Schleife aufgerufen, aber ich bekomme leeren Wert, wenn ich versuche, 'totalOffHomeHrs' in den Tabellendaten zu drucken. td

<c:forEach items="${userTimeTrackerSummary}" var="userTimeTracker"> 
      <script type="text/javascript"> 
       var totalOffHomeHrs= addTimes('${userTimeTracker.totalWorkhours}','${userTimeTracker.totalWorkHomehours}'); 
      </script> 
      <tr style="font-size:11px;"> 
        <td ><c:out value="${userTimeTracker.employeeID}" /></td> 
        <td>${totalOffHomeHrs}</td> 
      </tr> 
     </c:forEach> 

    javascript function: 
    function addTimes(t0, t1) { 
      return timeFromMins(timeToMins(t0) + timeToMins(t1)); 
     } 
+0

Hilft nicht [this] (http://stackoverflow.com/questions/28559648/how-to-call-jaskascript-function-from-tag-libs)? –

+0

@ Ashish. Ich versuche es genauso. frühere Funktion wurde aufgrund eines Serverneustartproblems nicht aufgerufen. Jetzt wurde die Funktion aufgerufen. Ich werde Sie den Fortschritt aktualisieren. Danke – user2057006

+0

Ich aktualisierte mit neuem Code. Bitte helfen Sie, warum totalOffHomeHrs nichts anzeigt. Gibt es einen anderen Weg, um diese Anforderung zu erfüllen? – user2057006

Antwort

0

Endlich kann ich die Anforderung in unter Code erreichen. Bitte schlagen Sie vor, ob es eine alternative elegante Art gibt.

<c:forEach items="${userTimeTrackerSummary}" var="userTimeTracker"> 
      <tr style="font-size:11px;"> 
       <td ><c:out value="${userTimeTracker.employeeID}" /></td> 
       <td id="finalWorkHours${userTimeTracker.employeeID}"></td> 
         <script type="text/javascript"> 
          var totalOffHomeHrs= addTimes('${userTimeTracker.totalWorkhours}','${userTimeTracker.totalWorkHomehours}'); 
          document.getElementById('finalWorkHours${userTimeTracker.employeeID}').innerHTML = totalOffHomeHrs; 
         </script> 
       </tr> 
      </c:forEach> 

javascript function: 
function addTimes(t0, t1) { 
     times = []; 
     times1 = t0.split(':'); 
     times2 = t1.split(':'); 

     for (var i = 0; i < 2; i++) { 
     times1[i] = (isNaN(parseInt(times1[i]))) ? 0 : parseInt(times1[i]) 
     times2[i] = (isNaN(parseInt(times2[i]))) ? 0 : parseInt(times2[i]) 
     times[i] = times1[i] + times2[i]; 
     } 

     var minutes = times[1]; 
     var hours = times[0]; 

     if (minutes % 60 === 0) { 
     res = minutes/60; 
     hours += res; 
     minutes = minutes - (60 * res); 
     } 

     return hours + ':' + minutes ; 
}