Foros del Web » Programando para Internet » Javascript »

Ayuda Formulario Javascript

Estas en el tema de Ayuda Formulario Javascript en el foro de Javascript en Foros del Web. Saludos! No se si se haya publicado este tema ya, la verdad no supe como buscarlo, dado que soy un poco nuevo por aca. De ...
  #1 (permalink)  
Antiguo 16/06/2008, 09:00
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda Formulario Javascript

Saludos!

No se si se haya publicado este tema ya, la verdad no supe como buscarlo, dado que soy un poco nuevo por aca.

De todos modos, aqui va: Resulta que tengo un formulario, generado con PHP y HTML, con un boton que verifica en un script javascript algunos campos antes de enviarse a la pagina de acciones. Mi iconveniente es que para que me funcione esto, debo refrescar la página del formulario, de lo contrario el boton de enviar (el que llama al script para validar antes de enviar a la siguiente pagina) no me funciona =(.

Alguien me puede ayudar con esto? La idea es no tener que refrescar la pagina para que me funcione el formulario y script correctamente.

Gracias x adelantado!!!
  #2 (permalink)  
Antiguo 16/06/2008, 09:20
Avatar de Markcoz  
Fecha de Ingreso: noviembre-2006
Mensajes: 158
Antigüedad: 17 años, 5 meses
Puntos: 2
Respuesta: Ayuda Formulario Javascript

Podrias poner el codigo para ver donde esta el problema ?
  #3 (permalink)  
Antiguo 16/06/2008, 09:57
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda Formulario Javascript

Con mucho gusto:

Código:
<script language = "javascript">

function arreglo(cadena){
//Crea arreglo con piezas.
i=0;
aux=0;
for(i=0; i<cadena.length; i++){
	if(cadena.charAt(i)=="/")
		aux+=1;
}
piezas = new Array(aux);
aux ="";
cont=0;
for(i=0; i<cadena.length; i++){
	if(cadena.charAt(i)!="/"){
		aux+=cadena.charAt(i);
	}
	else{
		piezas[cont]=aux;
		aux="";
		cont+=1;
	}		
}
return piezas;
}
function seleccionMat(nombre){

material = document.fCrear["mat_"+nombre].value;
arreglo= material.split("/");
unidad= arreglo[2];
if(unidad!=" CMS " && unidad!=" LAM "){
	document.fCrear["ancho_"+nombre].disabled = true;
	document.fCrear["ancho_"+nombre].value = 0;
	document.fCrear["largo_"+nombre].disabled = true;
	document.fCrear["largo_"+nombre].value= 0;
}else{
	document.fCrear["ancho_"+nombre].disabled = false;
	document.fCrear["largo_"+nombre].disabled = false;
}
}

function validacion(){
	
//Devuelve el arreglo de acuerdo a la cantidad de piezas que se hayan creado. 
piezas = arreglo(document.fCrear.piezas.value);
estaBien = true;
aux="";
//Con el nombre de la pieza, verifico que todos los campos esten llenos.
for(i=0;i<piezas.length && estaBien;i++){
	nombre = piezas[i];
	material = document.fCrear["mat_"+nombre].value;
	if(!document.fCrear["ancho_"+nombre].disabled){
		ancho = document.fCrear["ancho_"+nombre].value;
		largo = document.fCrear["largo_"+nombre].value;
		cantidad = document.fCrear["cant_"+nombre].value;
		//Validamos que se haya seleccionado un material
		if(material=="Seleccione un material..." && estaBien){
			estaBien = false;
			alert("Debe seleccionar un material para la pieza "+ nombre);
			document.fCrear["mat_"+nombre].focus();
		}
		//Validamos el ancho
		if((ancho=="" || ancho==0) && estaBien) {
			estaBien = false;
			alert("Debe digitar el ancho de la pieza " + nombre);
			document.fCrear["ancho_"+nombre].focus();
		}
		//Validamos el largo
		if((largo==0 || largo=="") && estaBien){
			estaBien = false;
			alert("Debe digitar el largo de la pieza " + nombre);
			document.fCrear["largo_"+nombre].focus();
		}
		//Validamos la cantidad
		if((cantidad==0 || cantidad=="") && estaBien){
			estaBien = false;
			alert("Debe digitar la cantidad para la pieza " + nombre);
			document.fCrear["cant_"+nombre].focus();
		}
	}
}

if(estaBien && confirm("A continuación se va a crear un nuevo producto.\nDesea continuar?")){
	document.fCrear.submit();
}
	
</script>
Código PHP:
//Este es el codigo que genera las listas y campos validados en el script

for($i=0;$i<(count($piezas)-1);$i++){
                            
    
//Tomo los materiales de la BD.
    
$res mysql_query($sql,$c);
    
$materiales "<option>Seleccione un material...</option>";
    
//Este ciclo me devuelve lista de materiales a escoger para cada pieza
    
while($row mysql_fetch_array($res)) {
        
$materiales.="<option size=\"20\">".$row["nombre"]." / ".$row["id_prov"]." / ".$row["unid_medida"]." / $".$row["costo_unid"]." / ".$row["id_mat"]."</option>";
    }
    
//Esto se hace para cada material en el arreglo de piezas.
    
$menu="<td width=\"70%\"><center><SELECT style=\"width:300px\" onChange=\"seleccionMat('".$piezas[$i]."')\" size=\"1\" name=\"mat_".$piezas[$i]."\">".$materiales."</SELECT></td>";
    
$ancho="<td width=\"10%\"><center><input type=\"text\" name=\"ancho_".$piezas[$i]."\" size=\"2\"></td>";
    
$largo="<td width=\"10%\"><center><input type=\"text\" name=\"largo_".$piezas[$i]."\" size=\"2\"></td>";
    
$cant="<td width=\"10%\"><center><input type=\"text\" name=\"cant_".$piezas[$i]."\" size=\"2\"></td>";
    
//Crea la fila con el nombre de la pieza, lista de materiales, campo para el ancho, largo y cantidad. 
    
echo "<tr><td>-<font size=\"1\">",$piezas[$i],"</font></td>",$menu,$ancho,$largo,$cant,"</tr>";
    }

//.... 
Código:
<input type="button" value="Crear producto!" name="crearProd" onclick="validacion()">

Última edición por rodaeche; 16/06/2008 a las 10:02
  #4 (permalink)  
Antiguo 17/06/2008, 13:53
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda Formulario Javascript

Alguien sabe donde esta el error?
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 02:12.