Foros del Web » Programando para Internet » Javascript »

Validar un campo dinamico en formulario php

Estas en el tema de Validar un campo dinamico en formulario php en el foro de Javascript en Foros del Web. tengo esta funcion javascript, para validar campos en blanco y que ingresen solo numeros, pero funciona solo para el primer campo ya que es campo ...
  #1 (permalink)  
Antiguo 30/03/2011, 14:31
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Busqueda Validar un campo dinamico en formulario php

tengo esta funcion javascript, para validar campos en blanco y que ingresen solo numeros, pero funciona solo para el primer campo ya que es campo cantidad es un array... <input name="cantidadmateriales[]" size="8" id="cantidad">
que va a variar del cuantos campos agregue el usuario final con un boton...

Como puedo recorrer el array para que esta funcion valida cada campo y no solo el primero??? Espero su ayuda... Estoy urgido y soy algo nuevo en javascript y php

function validar(){

var valor = document.getElementById("cantidad").value;



if(valor == null || valor.length == 0 || /^\s+$/.test(valor)){
alert("Ingrese la cantidad de producto a solicitar");
return false; }

else if(isNaN(valor)){
alert("Ingrese la cantidad de producto (solo números)");
return false;
}
else{
alert("Su requisición sera impresa automaticamente");
return true;
}

}
  #2 (permalink)  
Antiguo 30/03/2011, 14:37
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validar un campo dinamico en formulario php

usa los métodos getElementsByName() o getElementByTagName()
  #3 (permalink)  
Antiguo 30/03/2011, 14:40
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: Validar un campo dinamico en formulario php

seria algo asi? var valor = document.getElementsByName("cantidadmateriales").v alue;
o asi? var valor = document.getElementsByName("cantidadmateriales[]").value;

Gracias por su respuesta
  #4 (permalink)  
Antiguo 30/03/2011, 14:44
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: Validar un campo dinamico en formulario php

si uso el getElementsByName() siempre entra en el primer if meta lo que meta y nunca envia el formulario si uso el getElementByTagName todo lo contrario no entra en ninguno y envia el formulario
  #5 (permalink)  
Antiguo 30/03/2011, 14:50
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validar un campo dinamico en formulario php

con ambos métodos obtienes una colección. ahora has de recorrerla con un ciclo for
Cita:
eles = document.getElementsByTagName('input'):
for(var i=0, inputs = eles.length; i < inputs; i++)
if(inputs[i].value == ''); alert('vacio')
  #6 (permalink)  
Antiguo 30/03/2011, 14:57
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: Validar un campo dinamico en formulario php

seria al asi? y disculpa la molestia es que estoy nuevo y tengo rato tratando y nada, ando algo desesperado...


function validar(){

eles = document.getElementsByTagName('input'):

for(var i=0; inputs = eles.length; i < inputs; i++){

if(inputs[i].value == ''){

alert("Ingrese la cantidad de producto a solicitar");
return false; }


else{
alert("Su requisición sera impresa automaticamente");
return true;
}
}

}
  #7 (permalink)  
Antiguo 30/03/2011, 15:20
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validar un campo dinamico en formulario php

sí, pero yo sacaría el else. si lo no lo haces solamente se evaluará el primer control
  #8 (permalink)  
Antiguo 30/03/2011, 15:29
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: Validar un campo dinamico en formulario php

Estoy probando exactamente esto pero no lo toma en cuenta solo manda el formulario como si no hubiec nada...

function validar(){

eles = document.getElementsByTagName('input');
inputs = eles.length;

for(var i=0; i < inputs; i++){


if(inputs[i].value == null || inputs[i].value ''){

alert("Ingrese la cantidad de producto a solicitar");
return false; }

}

}
  #9 (permalink)  
Antiguo 30/03/2011, 15:34
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validar un campo dinamico en formulario php

en la etiqueta form tienes algo como esto
Cita:
onsubmit="return validar()"
te falta la comparación
Cita:
if(inputs[i].value == null || inputs[i].value ==''){
usas alguna consola de errores??
  #10 (permalink)  
Antiguo 30/03/2011, 15:39
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: Validar un campo dinamico en formulario php

si tengo en la declaracion del form onsubmit="return validar()"

incluso esta funcion me funciona perfectamente pero solo para el primer campo, ya correji la comparacion que me faltaba y sigue igual y en cuanto a la consola de errores, no tengo idea, soy algo nuevo en php, me imagino que no debo tener

function validar(){

var valor = document.getElementById("cantidad").value;



if(valor == null || valor.length == 0 || /^\s+$/.test(valor)){
alert("Ingrese la cantidad de producto a solicitar");
return false; }

else if(isNaN(valor)){
alert("Ingrese la cantidad de producto (solo números)");
return false;
}
else{
alert("Su requisición sera impresa automaticamente");
return true;
}

}
  #11 (permalink)  
Antiguo 30/03/2011, 15:58
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validar un campo dinamico en formulario php

vaya, parece que ha habido un involución. muestra el js y el html que tienes. en cuanto a la consola de errores tienes firebug un add-on de ff y la consola de chrome. usa alguna de ellos, se te hará todo mas sencillo
  #12 (permalink)  
Antiguo 30/03/2011, 16:05
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: Validar un campo dinamico en formulario php

fijate este es el codigo original, es un formulario que agrega requisiciones, cada vez que el usuario pulsa agregar se agrega un nuevo div donde estan dos campos, pero solo debo validar el campo cantidad...

<?php include("connect.php");

$w = "SELECT MR_NUMERO FROM MAESTRO_REQ";
$x = ociparse($c ,$w);
ociexecute($x);
$nrows = ocifetchstatement($x, $r);

$max=max($r["MR_NUMERO"])+1;

?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta content="jquery, forumlario dinamico, timersys, tutorial" name="keywords"/>

<style type="text/css">
.hide {
visibility: hidden;
display: none;
}body {
background-image: url();
}
.Estilo1 {font-family: Calibri}
.Estilo3 {
font-family: Calibri;
color: #FFFFFF;
}
.Estilo4 {color: #FFFFFF}
.Estilo6 {font-size: 10}
.Estilo7 {font-size: 12px}
body,td,th {
font-family: Calibri;
font-size: 12px;

}
.sel {
font-family: Calibri;
color: #000000;
}
</style>

<script type="text/javascript" src="js/items_detalles.js" ></script>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript">
function validar(){

var valor = document.getElementsByName("cantidadmateriales[]").value;



if(valor == null || valor.length == 0 || /^\s+$/.test(valor)){
alert("Ingrese la cantidad de producto a solicitar");
return false; }

else if(isNaN(valor)){
alert("Ingrese la cantidad de producto (solo números)");
return false;
}
else{
alert("Su requisición sera impresa automaticamente");
return true;
}
}

}

</script>
</head>

<body>
<form id="formInscripcion" name="formInscripcion" action="envio22.php" method="POST" onSubmit="return validar()">
<table width="478" border="0">
<tr>
<td colspan="2" bgcolor="#666666" class="Estilo7"><div align="center" class="Estilo1"><span class="Estilo3"> Departamento Solicitante</span></div></td>
<td width="58" bgcolor="#666666" class="Estilo7"><div align="center"><span class="Estilo3">N&deg; Req</span> </div></td>
<td width="56" bgcolor="#666666" class="Estilo7"><div align="center"><span class="Estilo1 Estilo4">Fecha</span></div></td>
</tr>
<tr>
<td width="70" bgcolor="#666666" class="Estilo7"><span class="Estilo3">Nombre</span></td>
<td width="276" class="Estilo7"><label>


</label> <label>
<select class="sel" style="width:257px" name="nom_dep" id="nom_dep" >
<?php
$q = "SELECT DP_NOMBRE FROM DEPTOS ORDER BY DP_NOMBRE";
$s = ociparse($c ,$q);
ociexecute($s);
$nrows = ocifetchstatement($s, $r);

for ($i = 0; $i < $nrows; $i++ )
{?>
<option value = "<?php echo $r["DP_NOMBRE"][$i]; ?>"><?php echo
$r["DP_NOMBRE"][$i]; ?></option>
<?php
}
?>
</select>
</label></td>
<td class="Estilo7"><input name="num_req" disabled="disabled" class="Estilo1" id="num_req" value="<?php echo $max;

?>" size="8"/></td>
<td class="Estilo7"><input name="fecha" class="Estilo1" id="fecha" value="<?php echo date("d/m/Y"); ?>" size="8"/></td>
</tr>

<tr>
<td colspan="4" bgcolor="#666666" class="Estilo7"><div align="center" class="Estilo3">Informaci&oacute;n de Requisici&oacute;n </div></td>
</tr>


<tr>
<td bgcolor="#666666" class="Estilo7"><span class="Estilo1 Estilo4">Observaci&oacute;n </span></td>
<td colspan="5" class="Estilo7"><input name="obs" class="Estilo1" value="" size="57"/></td>
</tr>
</table>
<span class="Estilo7"><br>
<table width="497" border="0">

<tr><td width="411" bgcolor="#666666" class="Estilo7"><div align="center" class="Estilo4"><span class="Estilo1">Descripci&oacute;n del Producto</span></div> <div align="center" class="Estilo4"></div></td>
<td width="76" colspan="2" bgcolor="#666666" class="Estilo7"><div align="center" class="Estilo4"><span class="Estilo1">Cantidad</span></div> <div align="center" class="Estilo4"></div></td>
</tr>
<tr>



<td colspan="3" class="Estilo7"><label></label> <label>
<div id="myDiv">
<div align="right">
<select name="materiales[]" class="sel" style="width:414px">
<?php

$q = "SELECT PR_DESCRIP FROM JUPITER.PRODUCTOS WHERE PR_CIA = 5 and (Nvl(Pr_Status,'X') <> '*') and pr_status is null and pr_grupo=1 ORDER BY pr_linea, PR_DESCRIP,PR_CODIGO";
$s = ociparse($c ,$q);
ociexecute($s);
$nrows = ocifetchstatement($s, $r);


for ($i = 0; $i < $nrows; $i++ )
{?>
<option value = "<?php echo $r["PR_DESCRIP"][$i]; ?>"><?php echo $r["PR_DESCRIP"][$i]; ?></option>
<?php
}
?>
</select>

<input name="cantidadmateriales[]" size="8" id="cantidad">
<!-- <input name="cantidadmateriales[]" size="8" onChange="validarSiNumero(this.value);">
-->
<!--<input class="bt_plus" id="1" type="button" value="+" style="BORDER: rgb(128,128,128) 1px solid; FONT-SIZE: 10pt; FONT-FAMILY: Calibri;
BACKGROUND-COLOR: rgb(233,233,233)" title="Agregar producto adicional"/>-->
</div>
<div class="error_form"></div></div>
</label></td>
</tr>
<tr>

<td colspan="3" class="Estilo7"><div align="center">

<input type="submit" name="guardar" value="GUARDAR" id="guardar" style="BORDER: rgb(128,128,128) 1px solid; FONT-SIZE: 10pt; FONT-FAMILY: Calibri; BACKGROUND-COLOR: rgb(233,233,233); cursor:pointer" title="Guardar Requisición"/>
<!--<input type="submit" name="enviar" value="Enviar" />-->

<input type="button" name="detalles" id="detalles" value="AGREGAR" onClick="addFormLine('myDiv', 'div_1');" style="BORDER: rgb(128,128,128) 1px solid; FONT-SIZE: 10pt; FONT-FAMILY: Calibri; BACKGROUND-COLOR: rgb(233,233,233); cursor:pointer" title="Agregar producto adicional"/>
</div> </td> </tr>
</table>

</form>
</body>
</html>

<div id="div_1" class="hide"> <select name="materiales[]" class="sel" style="width:414px" >
<?php

$q = "SELECT PR_DESCRIP FROM JUPITER.PRODUCTOS WHERE PR_CIA = 5 and (Nvl(Pr_Status,'X') <> '*') and pr_grupo=1 ORDER BY pr_linea, PR_DESCRIP,PR_CODIGO";
$s = ociparse($c ,$q);
ociexecute($s);
$nrows = ocifetchstatement($s, $r);

for ($i = 0; $i < $nrows; $i++ )
{?>
<option value = "<?php echo $r["PR_DESCRIP"][$i]; ?>"><?php echo $r["PR_DESCRIP"][$i]; ?></option>
<?php
}
?>
</select>

<input name="cantidadmateriales[]" size="8" id="cantidad">
<div class="error_form"></div></div>
  #13 (permalink)  
Antiguo 30/03/2011, 16:13
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validar un campo dinamico en formulario php

no me expresé bien. lo que se necesitas es el html que se genera al ejecutar la página. en la barra de menú del navegar ve a la opción ver --> código fuente de la página. copia y pega el código
  #14 (permalink)  
Antiguo 30/03/2011, 16:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: Validar un campo dinamico en formulario php

ya va no entiendo.. y que hago con eso? no es el mismo???
  #15 (permalink)  
Antiguo 30/03/2011, 16:25
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validar un campo dinamico en formulario php

has de copiarlo y pegarlo en este foro, al igual que has echo en el post #12.
no es lo mismo, ya está ejecutado el php y es mas fácil la lectura y compresión
  #16 (permalink)  
Antiguo 31/03/2011, 06:39
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: Validar un campo dinamico en formulario php

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta content="jquery, forumlario dinamico, timersys, tutorial" name="keywords"/>

<style type="text/css">
.hide {
visibility: hidden;
display: none;
}body {
background-image: url();
}
.Estilo1 {font-family: Calibri}
.Estilo3 {
font-family: Calibri;
color: #FFFFFF;
}
.Estilo4 {color: #FFFFFF}
.Estilo6 {font-size: 10}
.Estilo7 {font-size: 12px}
body,td,th {
font-family: Calibri;
font-size: 12px;

}
.sel {
font-family: Calibri;
color: #000000;
}
</style>

<script type="text/javascript" src="js/items_detalles.js" ></script>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript">
function validar(){

var valor = document.getElementById("cantidad").value;


if(valor == null || valor.length == 0 || /^\s+$/.test(valor)){
alert("Ingrese la cantidad de producto a solicitar");
return false; }

else if(isNaN(valor)){
alert("Ingrese la cantidad de producto (solo números)");
return false;
}
else{
alert("Su requisición sera impresa automaticamente");
return true;
}


}


</script>
</head>

<body>
<form id="formInscripcion" name="formInscripcion" action="envio22.php" method="POST" onSubmit="return validar()">
<table width="478" border="0">
<tr>
<td colspan="2" bgcolor="#666666" class="Estilo7"><div align="center" class="Estilo1"><span class="Estilo3"> Departamento Solicitante</span></div></td>
<td width="58" bgcolor="#666666" class="Estilo7"><div align="center"><span class="Estilo3">N&deg; Req</span> </div></td>

<td width="56" bgcolor="#666666" class="Estilo7"><div align="center"><span class="Estilo1 Estilo4">Fecha</span></div></td>
</tr>
<tr>
<td width="70" bgcolor="#666666" class="Estilo7"><span class="Estilo3">Nombre</span></td>
<td width="276" class="Estilo7"><label>


</label> <label>
<select class="sel" style="width:257px" name="nom_dep" id="nom_dep" >

<option value = "ADMINISTRACION CC AYACUCHO">ADMINISTRACION CC AYACUCHO</option>
<option value = "VENTAS">VENTAS</option>
<option value = "VICE-PRESIDENCIA">VICE-PRESIDENCIA</option>
</select>
</label></td>
<td class="Estilo7"><input name="num_req" disabled="disabled" class="Estilo1" id="num_req" value="6750" size="8"/></td>
<td class="Estilo7"><input name="fecha" class="Estilo1" id="fecha" value="30/03/2011" size="8"/></td>

</tr>

<tr>
<td colspan="4" bgcolor="#666666" class="Estilo7"><div align="center" class="Estilo3">Informaci&oacute;n de Requisici&oacute;n </div></td>
</tr>


<tr>
<td bgcolor="#666666" class="Estilo7"><span class="Estilo1 Estilo4">Observaci&oacute;n </span></td>

<td colspan="5" class="Estilo7"><input name="obs" class="Estilo1" value="" size="57"/></td>
</tr>
</table>
<span class="Estilo7"><br>
<table width="497" border="0">

<tr><td width="411" bgcolor="#666666" class="Estilo7"><div align="center" class="Estilo4"><span class="Estilo1">Descripci&oacute;n del Producto</span></div> <div align="center" class="Estilo4"></div></td>
<td width="76" colspan="2" bgcolor="#666666" class="Estilo7"><div align="center" class="Estilo4"><span class="Estilo1">Cantidad</span></div> <div align="center" class="Estilo4"></div></td>
</tr>

<tr>



<td colspan="3" class="Estilo7"><label></label> <label>
<div id="myDiv">
<div align="right">
<select name="materiales[]" class="sel" style="width:414px">
<option value = "AMBIENTADOR">AMBIENTADOR</option>
<option value = "PILAS AAA">PILAS AAA</option>
<option value = "PILAS CR-123A">PILAS CR-123A</option>

<option value = "SILICONE SPRAY ULTRA RAPIDO SQ">SILICONE SPRAY ULTRA RAPIDO SQ</option>
</select>

<input name="cantidadmateriales[]" size="8" id="cantidad">

</div>
<div class="error_form"></div></div>
</label></td>
</tr>

<tr>

<td colspan="3" class="Estilo7"><div align="center">

<input type="submit" name="guardar" value="GUARDAR" id="guardar" style="BORDER: rgb(128,128,128) 1px solid; FONT-SIZE: 10pt; FONT-FAMILY: Calibri; BACKGROUND-COLOR: rgb(233,233,233); cursor:pointer" title="Guardar Requisición"/>
<!--<input type="submit" name="enviar" value="Enviar" />-->

<input type="button" name="detalles" id="detalles" value="AGREGAR" onClick="addFormLine('myDiv', 'div_1');" style="BORDER: rgb(128,128,128) 1px solid; FONT-SIZE: 10pt; FONT-FAMILY: Calibri; BACKGROUND-COLOR: rgb(233,233,233); cursor:pointer" title="Agregar producto adicional"/>
</div> </td> </tr>
</table>

</form>

</body>
</html>

<div id="div_1" class="hide"> <select name="materiales[]" class="sel" style="width:414px" >
<option value = "AMBIENTADOR">AMBIENTADOR</option>
<option value = "PILAS AAA">PILAS AAA</option>
<option value = "PILAS CR-123A">PILAS CR-123A</option>
<option value = "SILICONE SPRAY ULTRA RAPIDO SQ">SILICONE SPRAY ULTRA RAPIDO SQ</option>

</select>

<input name="cantidadmateriales[]" size="8" id="cantidad">
<div class="error_form"></div></div>
  #17 (permalink)  
Antiguo 31/03/2011, 08:41
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validar un campo dinamico en formulario php

esta porción está fuera de la etiqueta form, body y html
Cita:
</body>
</html>

<div id="div_1" class="hide"> <select name="materiales[]" class="sel" style="width:414px" >
<option value = "AMBIENTADOR">AMBIENTADOR</option>
<option value = "PILAS AAA">PILAS AAA</option>
<option value = "PILAS CR-123A">PILAS CR-123A</option>
<option value = "SILICONE SPRAY ULTRA RAPIDO SQ">SILICONE SPRAY ULTRA RAPIDO SQ</option>

</select>

<input name="cantidadmateriales[]" size="8" id="cantidad">
<div class="error_form"></div></div>

Etiquetas: dinamico, php, formulario, campos
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 13:28.