Foros del Web » Programando para Internet » Javascript »

Añadir textbox segun numero

Estas en el tema de Añadir textbox segun numero en el foro de Javascript en Foros del Web. hola, es mi primera vez escribiendo y por cierto me encanta este foro de lo mejor que hay bueno espero que me puedan ayudar el ...
  #1 (permalink)  
Antiguo 27/07/2010, 19:14
 
Fecha de Ingreso: julio-2010
Mensajes: 16
Antigüedad: 13 años, 9 meses
Puntos: 0
Añadir textbox segun numero

hola, es mi primera vez escribiendo y por cierto me encanta este foro de lo mejor que hay

bueno espero que me puedan ayudar
el asunto es este tengo una casilla en la que me dan un numero entre 1 y 100 y un boton

si me dicen "10" la idea es que se creen 10 textbox

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
		<script type=text/javascript>
			function revisa(valor, fil)

			{
				var valido=0
				for (var i = 0; i < valor.length; i++) {
					var caracter = valor.substring(i, i+1)
					if (caracter != "0" && caracter != "1" && caracter != "2" && caracter != "3" && caracter != "4" && caracter != "5" && caracter != "6" && caracter != "7" && caracter != "8" && caracter != "9") 
					{
							alert("Solo estan permitidos los numeros enteros")
							valido++ 		
					}
					
				 } 
				 if( valor>100)
				 {valido++}
				 if(valido>0)
				 {document.inicio.cantidad.value=""}
				 else
				 {
				 	
					for(var j=1; j<=valor; j++)
					{
						  obj=fil.form;
						  num++;
						  elem=document.createElement('input');
						  elem.name='algo' + num;
						  elem.type="file";
						  obj.appendChild(elem);
					}
				 }

			}
			
	</script>
    </head>
    <body>
    	   	<form name="inicio" action="" method="post">
    	   	<label for "cantidad">Escriba la cantidad de datos a agregar: </label>
        	<input type="text" name="cantidad" >
			<input type="button" name="acepta" value="Aceptar" onclick="revisa(cantidad.value, this)">
			<ul id="lista"></ul>
			<h5>(Enteros entre 1 y 100)</h5>
			</form>
			
			
    </body>
</html>
  #2 (permalink)  
Antiguo 28/07/2010, 04:08
 
Fecha de Ingreso: junio-2010
Mensajes: 76
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Añadir textbox segun numero

Retocado, no se si es esto lo que quieres, he quitado la parte de control, eso te lo dejo a ti.
Ahora mismo si pones cualquier numero te hara esa cantidad de textbox en lista.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type=text/javascript>
function revisa(valor, fil)

{
/*var valido=0
for (var i = 0; i < valor.length; i++) {
var caracter = valor.substring(i, i+1)
if (caracter != "0" && caracter != "1" && caracter != "2" && caracter != "3" && caracter != "4" && caracter != "5" && caracter != "6" && caracter != "7" && caracter != "8" && caracter != "9")
{
alert("Solo estan permitidos los numeros enteros")
valido++
}

}
if( valor>100)
{valido++}
if(valido>0)
{document.inicio.cantidad.value=""}
else*/
{
document.getElementById('lista').innerHTML='';
for( j=1; j<=valor; j++)
{
document.getElementById('lista').innerHTML+='<li>< input type="text"></li>';

}
}

}

</script>
</head>
<body>
<form name="inicio" action="" method="post">
<label for "cantidad">Escriba la cantidad de datos a agregar: </label>
<input type="text" name="cantidad" >
<input type="button" name="acepta" value="Aceptar" onclick="revisa(cantidad.value, this)">
<ul id="lista"></ul>
<h5>(Enteros entre 1 y 100)</h5>
</form>


</body>
</html>
  #3 (permalink)  
Antiguo 28/07/2010, 19:15
 
Fecha de Ingreso: julio-2010
Mensajes: 16
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Añadir textbox segun numero

hola de nuevo, me sirvio mucho la ayuda que me diste jokuto, gracias

ya he avanzado un poco en el codigo y han surgido otros problemas en los que espero me puedan ayudar

1. Cuando trato de correr el codigo con varios datos unos 30 mas o menos, se queda quieto no hace nada, y no entiendo el porque >.< (con pocos numeros si halla el promedio y la desviacion estandar)

2. Algo que quisiera agregar al final es la opcion de volver a empezar ya se como sacar la ventana con las 2 opciones el problema esta en como hacer para que vuelva al inicio a cuando no estaban los textbox y esperaba la cantidad de datos que queria.

Se agradece cualquier ayuda :)

Dejo el codigo de como lo llevo hasta el momento
Código HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
		<script language="javascript" type="text/javascript">
			function revisa(valor)

			{
				var valido=0
				for (var i = 0; i < valor.length; i++) 
				{
					var caracter = valor.substring(i, i+1)
					if (caracter != "0" && caracter != "1" && caracter != "2" && caracter != "3" && caracter != "4" && caracter != "5" && caracter != "6" && caracter != "7" && caracter != "8" && caracter != "9" && valido==0) 
					{
							alert("Solo estan permitidos los numeros enteros")
							valido++ 
							
									
					}
					
				 } 
				 if(valor=="")
				 {
				 	alert("Ingrese algun entero para empezar")
					valido++
				 }
				 if(valor>100)
				 {
				 	alert("El valor maximo es 100")
				 	valido++
				 }
				 if(valido>0)
				 {document.inicio.cantidad.value=""}
				 else
				 {  document.inicio.cantidad.disabled = this.value!=''
				    document.inicio.acepta.disabled = this.value!=''
					document.inicio.activa.disabled = false;
				 	document.getElementById('lista').innerHTML='';
					for( j=1; j<=valor; j++)
					{
						var nl ="campo"+j
					    if(j != 20 && j!= 40 && j!=60 && j!=80  )
						document.getElementById('lista').innerHTML+= '<li><input type="text" name='+nl+'  onblur="revisa2(this.value, this.name)"></li>';
					
					}
				 }

			}
			function revisa2(valor, nombre)
			{
				var valido=0
				for (var i = 0; i < valor.length; i++) 
				{
					var caracter = valor.substring(i, i+1)
					if (caracter != "0" && caracter != "1" && caracter != "2" && caracter != "3" && caracter != "4" && caracter != "5" && caracter != "6" && caracter != "7" && caracter != "8" && caracter != "9") 
					{
							
							valido++ 
									
					}
				if(valido>0)
				 {
				 	
					document.inicio[nombre].value=""
				 }
					
				 } 
			}
			
			function trabaja()
			{
				var cd = eval(document.inicio.cantidad.value) + 3
				var sinvacios = 0;
				for(var a=3; a<cd; a++)
				{
					if(document.inicio[a].value=="")
					{alert("Faltan datos por ingresar"); sinvacios++; break;}
				}
				if (sinvacios == 0) {
					for (var i = 3; i < cd; i++) {
						for (var j = 3; j < cd; j++) {
							if (eval(document.inicio[i].value) < eval(document.inicio[j].value)) {
								var cambio = document.inicio[i].value;
								document.inicio[i].value = document.inicio[j].value;
								document.inicio[j].value = cambio;
							}
						}
					}
				}
				if (sinvacios == 0) 
				{
					var divi = eval(document.inicio.cantidad.value)
					var suma=0;
					for (var b = 3; b < divi+3; b++) 
					{
						
						suma = suma + eval(document.inicio[b].value)
					}
					var promedio = suma/divi;
					var desvi =0;
					for(var c=3; c<divi+3; c++)
					{
						var num = eval(document.inicio[c].value) - eval(promedio)
						desvi =  desvi + Math.pow(num,2)						
					}
					
					desvi = Math.sqrt(desvi/(divi-1))
					alert("El promedio es: " +promedio+ "\nLa desviacion estandar es: "+desvi)
					
				}
				

				
				
		 	}
			
			
			
			

			
	</script>
    </head>
    <body>
    	   	<form name="inicio" action="" method="post">
    	   	<label for "cantidad">Escriba la cantidad de datos: </label>
        	<input type="text" name="cantidad" id="cant_inicio">
			<input type="button" name="acepta" value="Aceptar" onclick="revisa(cantidad.value)"><br>
			<input type="button" name="activa" value="Activar" onclick="trabaja()" disabled = "true">
			<ul id="lista"></ul>

			<h5>(Enteros entre 1 y 100)</h5>
			
			
			</form>
			
			
    </body>
</html> 
  #4 (permalink)  
Antiguo 29/07/2010, 17:59
 
Fecha de Ingreso: julio-2010
Mensajes: 16
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Añadir textbox segun numero

jejeje eso de que no me ordenaran mas de 20 era una bobada XD
fue por que intente cuadrar varias columnas de a 20 para ver los datos mas ordenados :P

si me pueden ayudar con la segunda parte se los agradezco
  #5 (permalink)  
Antiguo 30/07/2010, 02:48
 
Fecha de Ingreso: junio-2010
Mensajes: 76
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Añadir textbox segun numero

function reinicia(){
document.getElementById('lista').innerHTML='';
document.inicio.acepta.disabled=false;
document.inicio.cantidad.disabled=false;
document.inicio.cantidad.value='';
document.inicio.activa.disabled=true;
}
y un boton al al lado de activar y ya estsa

Última edición por Jokuto; 30/07/2010 a las 03:13

Etiquetas: añadir, numero, textbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:29.