Hola:
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>