eso es lo que le dije yo desde el principio que lo pusiera
== ''
pero no hace caso.
Si eso no te funciona, es por que los input tienen un valor asignado como defaul
Cita: <td><input type="text" name="<?php echo ("trab_apellido".$i);?>" id="<?php echo ("trab_apellido".$i);?>" value="<?php echo $apellido; ?>" style="border:0px; width: 80px;<?php if(!(preg_match("/^([a-z ñáéíóú ÑÁÉÍÓÚ ]{2,50})$/i",$apellido))){ echo "border:2px solid #cc0000;";} ?>" onblur="valida_apellido(<?php echo $i; ?>); esconde(<?php echo $i; ?>);" ></td>
eso le asigna el value de $apellido, pero aunque la variable no este definida, el value sera el mensaje de error de php.
Cita: <td><input type="text" name="<?php echo ("trab_apellido".$i);?>" id="<?php echo ("trab_apellido".$i);?>" value="<?php if(isset($apellido)) echo $apellido; ?>" style="border:0px; width: 80px;<?php if(isset($apellido && !(preg_match("/^([a-z ñáéíóú ÑÁÉÍÓÚ ]{2,50})$/i",$apellido))){ echo "border:2px solid #cc0000;";} ?>" onblur="valida_apellido(<?php echo $i; ?>); esconde(<?php echo $i; ?>);" ></td>
y asi con todos los input.
Dependiendo de donde obtengas $i tambien deberas comprobar que este definida con isset tambien.
De esa forma cuando algun variable no este definida no escribira un value y el =='' funcionara.
Edita el codigo fuente de la pagina y veras como todos los input tienen un valor.
Pero agregando los isset que te e dicho en todos los input y en el javascript poniendo == '' tiene que funcionar por narices.
Adicionalmente tambien te informo que las etiquetas input terminan por />, si no le pones la / funcionara, pero cuando intentes validar el css te dara error de sintaxis.