Ejemplo:
Código HTML:
<div>
<form name="ejMultiInput">
Numero de inputs:
<input maxlength="2" name="numInputs" onkeyup="multiplicarInputs(this)" size="5" type="text" />
<br />
<div id="divMultiInputs">
</div>
<input onclick="controlMultiInput()" type="button" value="Comprobar" />
</form>
</div>
Código Javascript:
function multiplicarInputs(text){
var num= text.value
var div='';
for (var i=0;i<num;i++){
var cont=i+1;
div+="<br> Input text "+cont+"<input maxlength='5' name='inputTextMulti[]' size='6' type='text' /> ";
}
document.getElementById("divMultiInputs").innerHTML=div;
}
Y para realizar la recogida de datos:
En Javascript:
function controlMultiInput(){
var numI=document.ejMultiInput.numInputs.value;
if (numI.length<1){
alert('Especifica el numero de Input text que quieres');
return false;
}
var text=document.ejMultiInput.elements['inputTextMulti[]']; //text sera un array de inputs text
if(text.length){ //si devuelve algo es porque tiene mas de 1 elemento por lo que sera un array
for (var i=0;i<numI;i++){
var cont=i+1;
if(text[i].value.length<1){alert('Debes introducir contenido del Input text '+cont); return false;}
}
}else{
if(text.value.length<1){
alert('Debes rellenar el unico Input text');
return false;
}
}
alert('Formulario correcto');
}
En PHP:
$inputs=$_POST['inputTextMulti'];
for ($i=0; $i<count($inputs);$i++){
$cont=$i+1;
if (empty($inputs[$i])){
$fallos.="<br>Debes rellenar introducir contenido para el Input text $cont.";
}
}
if ($fallos!=""){
echo $fallos;
}else{
.... RESTO DEL PROGRAMA
Bueno ahí lo dejo, seguro que hay alguna forma mejor o más optima pero yo lo resolví así, si alguien quiere poner un comentario explicando una forma mejor que no se vea cohibido puesto que la función de este blog es ayudar y mejorar en la medida de lo posible.
Un saludo.
Esta muy bueno ese código, haber para que le doy utilidad, Gracias y saludos :)
ResponderEliminarMuchas gracias por la aportación amigo!
ResponderEliminarMuchas gracias. Justo lo que estaba buscando.
ResponderEliminarcomo puedo hacer que cuando se escriba un texto se agrege otro input text?o con un textarea :c
ResponderEliminar