Ir al contenido principal

Dealing with generated code in HTML

Last night one friend of my calls me to help him with the application they use at the school he works. He wanted to have the final grades less than 70 with red color. It's only a one java-script function he tells me. And it's true. But there is a hidden story in that simple java-script function.

First of all. I start checking that the table is a generated table. No problem with this. But then i noticed something funny all the rows have the same ID. WTF was my first impression.
 <TD class=xl30 id="table1">{rc_ClassAvg1} </TD>  
 <TD class=xl30>>&nbsp;</TD>  
 <TD class=xl30 id="table2">>{rc_ClassAvg2} </TD>  
 <TD class=xl30>&nbsp;</TD>  
 <TD class=xl30 id="table3">{rc_ClassAvg3} </TD>  
rc_ClassAvg1 generates the code for all the grades, and all the rows it generates come with id=table1.

So my simple java-script file had to deal with repeated rows with the same idea. Looking at stackoverflow I found this question.

It help me deal with the generated code that had the same id.

 this.changecolor = function(){  
  var value;  
  var id;  
   var n = document.getElementById("table1");  
   var a = [];  
   var y=1;  
   while(n) {  
     a.push(n); = "table"+y;  
     n = document.getElementById("table");  
   if (value < 70 ){  
At the end I have to go by each element change the element id and put this elements in an array.
This would have been solved other way if my generated code didn't include the same id for each element. I guess that's a bug.

Just wondering what solution would have you done?


  1. The line inside the while loop:

    n = document.getElementById("table");

    Shouldn't be?
    n = document.getElementById("table1");

  2. Another problem would be that the "Table2" and "Table3" elements already exist and it will get duplicated, maybe you want to usen another id like "Table_n".

  3. Wouldn't it be better to use HTML5 form validation for things like this? If it's possible, then it should be a lot easier, a lot faster to code and a much more efficient.

    1. I mean something like this in html:

      «input required type="number" min="70" max=100" value="55"»

      And then a style sheet such as this:

      input:invalid { background-color:red; }

    2. Yes! You are right. But there is a big issue. The place where they will use this they use IE8. HTML5 will not work


Publicar un comentario

Entradas populares de este blog

Que buscaron los hondureños en Google en el 2017

Se han preguntando que buscan los catrachos en Internet? Les traemos un resumen de las busquedas de este 2017 en Honduras.

Actualizar de Ubuntu 14.04 a 16.04

Ya ha pasado vario tiempo, desde que estoy trabajando con la versión LTS Ubuntu 14.04, pero creo que ha llegado el tiempo de actualizar a la nueva versión LTS 16.04. Las principales razones, son que necesito trabajar con el nuevo kit de desarrollo de java 1.8 y no hay soporte oficial para la versión open source en 14.04. Aparte que nunca me sentí muy conforme con dicha versión, considero que hubieron anteriores mejores. Esta es una guía, que les permitirá migrar de Ubuntu 14.04 a 16.04. Paso 1: Aseguremos que estemos con las ultimas actualizaciones instaladas. Si tenemos una versión en español, saldría algo parecido a la imagen siguiente. Paso 2:  Abrimos la terminal, e insertamos el siguiente comando: sudo update-manager -d Saldra algo parecido a esta imagen. Le damos click al botón de actualizar. Nos aparecerá una ventana titulada "Notas de la versión" Despues de eso le damos click en actualizar. Después del botón de actualizar, nos aparecerá u

Adding Users to Existing Groups in Ubuntu (Oneiric Ocelot)

Hi have been working in Virtual Box, this days and need to add my user to the vboxusers group. I was going to do it graphically, and suddenly I notice that the application I use for doing this job it disappear. :( So I have to use the CLI If you know the group just do this Steps sudo usermod -a -G GROUP USER where -a means append. Add the user to the supplementary group(s). Use only with the -G option. If you want to read more about the usermod do man usermod If you don't know the group Steps groupmode 2 TIMES sudo usermod -a -G GROUP USER If you see the only difference is that you type groupmode and press tab 2 times and all the groups will be display. HOPE it works