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.