Tengo este script que genera dinamicamente campos de formulario, con la validación.
Funciona bien hasta la validación, que solo me da error cuando el primer campo está vacio, si tiene datos no sigue el bucle al siguiente campo.
Gracias y un saludo:
Código HTML:
<script type="text/javascript"> num=0; function crear(obj) { num++; //Creamos los datos del modulo papa = obj.parentNode; hermano = obj.nextSibling; contenedor = document.createElement('div'); contenedor.id = 'div'+num; if (hermano == undefined) papa.appendChild(contenedor) else papa.insertBefore(contenedor, hermano) txt = document.createElement('<br>'); // Meto un salto de línea contenedor.appendChild(txt); txt = document.createElement('<br>'); // Meto un salto de línea contenedor.appendChild(txt); txt = document.createTextNode('Cantidad: '); //Creamos el modulo ele = document.createElement('input'); ele.type = 'text'; ele.size='10'; ele.name = 'cantidad'+num; contenedor.appendChild(txt); contenedor.appendChild(ele); txt = document.createElement('<br>'); // Meto un salto de línea contenedor.appendChild(txt); txt = document.createElement('<br>'); // Meto un salto de línea contenedor.appendChild(txt); txt = document.createTextNode('Precio: '); //Creamos las horas de la materia ele = document.createElement('input'); ele.type = 'text'; ele.name = 'precio'+num; ele.size='10'; contenedor.appendChild(txt); contenedor.appendChild(ele); txt = document.createElement('<br>'); // Meto un salto de línea contenedor.appendChild(txt); txt = document.createElement('<br>'); // Meto un salto de línea contenedor.appendChild(txt); txt = document.createTextNode('Concepto: '); //Creamos las horas de la materia ele = document.createElement('textarea'); ele.name = 'concepto'+num; ele.cols='40'; contenedor.appendChild(txt); contenedor.appendChild(ele); txt = document.createElement('<br>'); // Meto un salto de línea contenedor.appendChild(txt); txt = document.createElement('<br>'); // Meto un salto de línea contenedor.appendChild(txt); txt = document.createTextNode('Tipo de iva: '); //Creamos las horas de la materia ele = document.createElement('input'); ele.type = 'radio'; ele.name = 'iva'+num; ele.id = 'iva1'; ele.value = '2'; contenedor.appendChild(txt); contenedor.appendChild(ele); txt = document.createTextNode("8% \u00a0"); ele = document.createElement('input'); ele.type = 'radio'; ele.name = 'iva'+num; ele.id = 'iva2'; ele.value = '1'; contenedor.appendChild(txt); contenedor.appendChild(ele); txt = document.createTextNode('16%'); contenedor.appendChild(txt); txt = document.createElement('<br>'); // Meto un salto de línea contenedor.appendChild(txt); txt = document.createElement('<br>'); // Meto un salto de línea contenedor.appendChild(txt); ele = document.createElement('input'); ele.type = 'button'; ele.value = 'Borrar'; ele.name = 'div'+num; ele.onclick = function () {borrar(this.name,obj)} contenedor.appendChild(ele); } function borrar(obj) { fi = document.getElementById('fiel'); // 1 fi.removeChild(document.getElementById(obj)); // 10 } function validar(f){ var inputs=document.getElementsByName('cantidad'+num); for (i=0; i<inputs.length; i++) { if (inputs[i].value == '') { alert("¡No has hecho ninguna oferta!"); eval("document.f1.cantidad" + num + ".focus()"); }else document.f1.submit(); } } </script>