Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/06/2012, 04:11
aventis
 
Fecha de Ingreso: junio-2012
Mensajes: 15
Antigüedad: 11 años, 11 meses
Puntos: 1
Pregunta Extraer valores de campos creados dinámicamente

Buenos días.

Quizá está pregunta para vosotros sea algo fácil, pero yo he empezado hace 2 semanas y ando algo perdido.

Estoy creando un formulario con algo parecido a una lista de la compra en la que se seleccionan los artículos en un combo (que almacena su importe), el usuario introduce las unidades y luego se calcula el importe.

Como quiera que los artículos son variables, he tratado de hacer que los select se añadan dinámicamente. Para ello me he basado en [URL="http://www.telefonica.net/web2/blas-mar/crear.html"]este tuto[/URL].

Todo bien hasta que tengo que tomar los valores de los artículos seleccionados en el combo para calcular los subtotales. Ahí me pierdo, porque no sé cómo llamar de forma genérica a los correspondientes select y texts. Es por eso que os pido ayuda.

Tened en cuenta, que no solo me interesa obtener subtotales, si no también un total que sea la suma de los mismos, y con el cuál tendré que seguir operando en adelante.

Mi código:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html> 
<head>
<title>Crear input file</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
<!--
num=0;
function crear(obj) {
  num++;
  fi = document.getElementById('fiel');
  contenedor = document.createElement('div');
  contenedor.id = 'div'+num;
  fi.appendChild(contenedor);

  
 var arraytextos=new Array(8)
 arraytextos[0] = "Text"
 arraytextos[1] = "Numero"
 arraytextos[2] = "Compaq 686"
 arraytextos[3] = "Dell 486"
 arraytextos[4] = "Dell 586"
 arraytextos[5] = "Dell 686"
 arraytextos[6] = "IBM 486"
 arraytextos[7] = "IBM 586"
 arraytextos[8] = "IBM 686"
 
 var arrayvalores=new Array(8)
 arrayvalores[0] = "20"
 arrayvalores[1] = "10"
 arrayvalores[2] = "30"
 arrayvalores[3] = "50"
 arrayvalores[4] = "10"
 arrayvalores[5] = "8"
 arrayvalores[6] = "7"
 arrayvalores[7] = "14"
 arrayvalores[8] = "50"
 
 ele = document.createElement('select');
 ele.name='selector'+num;
 
 for (i=0; i<8; i++) 
 {
 opt = document.createElement('option');
 opt.setAttribute("value",arrayvalores[i])
 opt.innerHTML = arraytextos[i];
 ele.appendChild(opt);
 }
 contenedor.appendChild(ele);
  
  
  ele = document.createElement('input');
  ele.type = 'text';
  ele.value = '0';
  ele.size = '1';
  ele.name = 'casilla'+num;
  contenedor.appendChild(ele);
  
  ele = document.createElement('input');
  ele.type = 'button';
  ele.value = 'Borrar';
  ele.name = 'boton'+num;
  ele.onclick = function () {borrar(this.name)}
  contenedor.appendChild(ele);
}
function borrar(obj) {
  fi = document.getElementById('fiel');
  fi.removeChild(document.getElementById(obj));
}
Con respecto al ejemplo, he cambiado los nombres de los elementos (era siempre div+num), creo que eso ha hecho que el botón de borrar no funcione.
Agradeceré cualquier ayuda en este aspecto también, así como cualquier otro consejo u observación, ya que como he dicho, soy bastante novato.

Muchas gracias de antemano.

Última edición por aventis; 01/06/2012 a las 04:17