2016-12-29 1 views
-1

J'ai besoin d'appeler une fonction javascript dans c: foreach. S'il vous plaît donnez-moi une idée comment appeler. Je passerai en revue le usertimetrackersummary à l'intérieur de foreach et ai besoin d'appeler la fonction de javascript pour chaque boucle.Appeler javascript de c: foreach

Maintenant, la fonction javascript est appelée chaque boucle mais je reçois une valeur vide si j'essaie d'imprimer 'totalOffHomeHrs' dans les données de la table. 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

Ne [cette] (http://stackoverflow.com/questions/28559648/how-to-call-javascript-function-from-tag-libs) aide? –

+0

@Ashish. J'essaye la même chose. la fonction précédente n'a pas été appelée en raison d'un problème de redémarrage du serveur. maintenant la fonction a été appelée. Je vais vous mettre à jour les progrès. Merci – user2057006

+0

J'ai mis à jour avec le nouveau code. S'il vous plaît aider pourquoi totalOffHomeHrs affiche rien. Y a-t-il un autre moyen d'atteindre cette exigence? – user2057006

Répondre

0

Enfin, je suis en mesure de satisfaire aux exigences du code ci-dessous. S'il vous plaît suggérer s'il y a une manière élégante alternative.

<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 ; 
}