Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/08/2014, 04:15
Avatar de legomolina
legomolina
 
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 13 años, 6 meses
Puntos: 3
dataset con childNodes

Buenas, sólo me preguntaba porqué así el código funciona:
Código Javascript:
Ver original
  1. var form=$("formulario_"+formulario);
  2. var elementos=form.elements;
  3.  
  4. for(var i=0; i<elementos.length; i++) {
  5.         campo=elementos[i].dataset.campo; //atributo data-campo de los campos donde se guarda su nombre
  6.  
  7.         if(elementos[i].type=="text" || elementos[i].type=="textarea") { //si el elemento en cuestion es un input text o textarea
  8.             elementos[i].value=array[index][campo]; //asigna su valor al correspondiente del array
  9.         }
  10. }

y así me dice que "campo" es undefined (refiriendose a dataset.campo)

Código Javascript:
Ver original
  1. var elementos=form.childNodes;

El array es esto:
Código Javascript:
Ver original
  1. clientes[0]={codigo:'0',nombre:'nombre0',domicilio1:'domicilio10',domicilio2:'domicilio20',cp:'0',poblacion:'poblacion0',provincia:'provincia0',dni:'0',telefono:'0',movil:'0',fax:'0',email:'email0',observaciones:'observaciones0'};
  2. clientes[1]={codigo:'1',nombre:'nombre1',domicilio1:'domicilio11',domicilio2:'domicilio21',cp:'1',poblacion:'poblacion1',provincia:'provincia1',dni:'1',telefono:'1',movil:'1',fax:'1',email:'email1',observaciones:'observaciones1'};

y un ej del form sería este:
Código HTML:
Ver original
  1. <form id="formulario_clientes">
  2.                     <label for="formulario_clientes_codigo">Código: </label><input data-formulario="clientes" data-campo="codigo" data-disabled="true" type="text" name="codigo" id="formulario_clientes_codigo" size="5" disabled><br>
  3.                     <label for="formulario_clientes_nombre">Nombre: </label><input data-formulario="clientes" data-campo="nombre" data-disabled="false" type="text" name="nombre" id="formulario_clientes_nombre" size="40" maxlength="30"><br>
  4.                     <label for="formulario_clientes_domicilio1">Domicilio 1: </label><input data-formulario="clientes" data-campo="domicilio1" data-disabled="false" type="text" name="formulario_clientes_domicilio1" id="formulario_clientes_domicilio1" size="40" maxlength="30"><br>
  5.                     <label for="formulario_clientes_domicilio2">Domicilio 2: </label><input data-formulario="clientes" data-campo="domicilio2" data-disabled="false" type="text" name="formulario_clientes_domicilio2" id="formulario_clientes_domicilio2" size="40" maxlength="30"><br>
  6.                     <label for="formulario_clientes_cp">Código Postal: </label><input data-formulario="clientes" data-campo="cp" data-disabled="false" type="text" name="formulario_clientes_cp" id="formulario_clientes_cp" size="6" maxlength="5"><br>
  7.                     <label for="formulario_clientes_poblacion">Población: </label><input data-formulario="clientes" data-campo="poblacion" data-disabled="false" type="text" name="formulario_clientes_poblacion" id="formulario_clientes_poblacion" size="40" maxlength="30"><br>
  8.                     <label for="formulario_clientes_provincia">Provincia: </label><input data-formulario="clientes" data-campo="provincia" data-disabled="false" type="text" name="formulario_clientes_provincia" id="formulario_clientes_provincia" size="40" maxlength="30"><br>
  9.                     <label for="formulario_clientes_dni">DNI: </label><input data-formulario="clientes" data-campo="dni" data-disabled="false" type="text" name="formulario_clientes_dni" id="formulario_clientes_dni" size="40" maxlength="30"><br>
  10.                     <label for="formulario_clientes_telefono">Teléfono: </label><input data-formulario="clientes" data-campo="telefono" data-disabled="false" type="text" name="formulario_clientes_telefono" id="formulario_clientes_telefono" size="10" maxlength="10">
  11.                     <label for="formulario_clientes_movil" style="width: 69px;">Móvil: </label><input data-formulario="clientes" data-campo="movil" data-disabled="false" type="text" name="formulario_clientes_movil" id="formulario_clientes_movil" size="10" maxlength="10"><br>
  12.                     <label for="formulario_clientes_fax">Fax: </label><input data-formulario="clientes" data-campo="fax" data-disabled="false" type="text" name="formulario_clientes_fax" id="formulario_clientes_fax" size="10" maxlength="10"><br>
  13.                     <label for="formulario_clientes_email">Email: </label><input data-formulario="clientes" data-campo="email" data-disabled="false" type="text" name="formulario_clientes_email" id="formulario_clientes_email" size="40" maxlength="30"><br>
  14.                     <label for="formulario_clientes_observaciones" style="vertical-align: top;">Observaciones: </label><textarea data-formulario="clientes" data-campo="observaciones" data-disabled="false" name="formulario_clientes_observaciones" id="formulario_clientes_observaciones" cols="31" rows="3"></textarea>
  15.                 </form>

Debe de ser cosa del childnodes pero ni idea de porque no funciona. He probado tambien con getAttribute("data-campo"); pero tampoco funciona
Gracias de antemano