Discussion:
validar campo en formulario php con javascript
(demasiado antiguo para responder)
Xabier Giménez Sasieta
2004-09-08 09:19:05 UTC
Permalink
Hola!
ya sé que se ha tratado bastante este tema, pero no me acaba de funcionar
una función de validación de campos.

Tengo un formulario que pasa los datos a un script php, el cual, en función
de los datos recibidos, muestra una cosa o otra.
El problema es que necesito que todos los campos sean rellenados, y claro,
la gente rellena lo que quiere.
Esto es lo que estoy haciendo (y que no me funciona):

Página del formulario: (simplificada)

<html>
<head>
</head>
<body topmargin="0" leftmargin="0">
<script language="JavaScript">
function validar()
{
if(document.formulario.datos1.value=="")
{
alert("falta datos1")
return false
}
}
</script>
<form name=formulario action='formu1.php' method='post' onSubmit="return
validar()">
<input type='text' name=datos1 value='' size=35>
<input type="submit" value="Calcular">
<input type="reset" value="Borrar todos los datos">
</p>
</form>
</body>
</html>



Hay algo que esté mal? el javascript está bien colocado?

Saludos,

Javier
Javi
2004-09-08 09:32:44 UTC
Permalink
Hola

El script ponlo en la cabecera de la pagina y en lugar de onSubmit="return
validar() dejalo asi: onsubmit="validar()"

Salu2
Post by Xabier Giménez Sasieta
Hola!
ya sé que se ha tratado bastante este tema, pero no me acaba de funcionar
una función de validación de campos.
Tengo un formulario que pasa los datos a un script php, el cual, en función
de los datos recibidos, muestra una cosa o otra.
El problema es que necesito que todos los campos sean rellenados, y claro,
la gente rellena lo que quiere.
Página del formulario: (simplificada)
<html>
<head>
</head>
<body topmargin="0" leftmargin="0">
<script language="JavaScript">
function validar()
{
if(document.formulario.datos1.value=="")
{
alert("falta datos1")
return false
}
}
</script>
<form name=formulario action='formu1.php' method='post' onSubmit="return
validar()">
<input type='text' name=datos1 value='' size=35>
<input type="submit" value="Calcular">
<input type="reset" value="Borrar todos los datos">
</p>
</form>
</body>
</html>
Hay algo que esté mal? el javascript está bien colocado?
Saludos,
Javier
Xabier Giménez Sasieta
2004-09-08 10:29:59 UTC
Permalink
Gracias!
Ya me sale el aviso de que faltan datos, gracias por la información...
Lo que pasa ahora es que, tras aceptar la ventana emergente de que faltan
datos, sigue enviando los datos al script php, en lugar de quedarse en la
página del formulario sin enviar nada... :-(
Post by Javi
Hola
El script ponlo en la cabecera de la pagina y en lugar de onSubmit="return
validar() dejalo asi: onsubmit="validar()"
Salu2
Post by Xabier Giménez Sasieta
Hola!
ya sé que se ha tratado bastante este tema, pero no me acaba de funcionar
una función de validación de campos.
Tengo un formulario que pasa los datos a un script php, el cual, en
función
Post by Xabier Giménez Sasieta
de los datos recibidos, muestra una cosa o otra.
El problema es que necesito que todos los campos sean rellenados, y claro,
la gente rellena lo que quiere.
Página del formulario: (simplificada)
<html>
<head>
</head>
<body topmargin="0" leftmargin="0">
<script language="JavaScript">
function validar()
{
if(document.formulario.datos1.value=="")
{
alert("falta datos1")
return false
}
}
</script>
<form name=formulario action='formu1.php' method='post' onSubmit="return
validar()">
<input type='text' name=datos1 value='' size=35>
<input type="submit" value="Calcular">
<input type="reset" value="Borrar todos los datos">
</p>
</form>
</body>
</html>
Hay algo que esté mal? el javascript está bien colocado?
Saludos,
Javier
stripTM
2004-09-08 10:51:03 UTC
Permalink
Post by Xabier Giménez Sasieta
Gracias!
Ya me sale el aviso de que faltan datos, gracias por la información...
Lo que pasa ahora es que, tras aceptar la ventana emergente de que faltan
datos, sigue enviando los datos al script php, en lugar de quedarse en la
página del formulario sin enviar nada... :-(
añadele el return
<form ... onsubmit="return validar();"> y asegurate que la función
devuelva true cuando el formulario está bien.

Por cierto la defición correcta de la etiqueta script no es
<script language="JavaScript">
sino
<script type="text/javascript">
--
Saludos -=stripTM=-
Xabier Giménez Sasieta
2004-09-08 14:31:36 UTC
Permalink
Nuevamente gracias... y nuevamente tengo un nuevo problema, esta vez con la
validación de unos botones tipo radio... he estado mirando por ahi y al
parecer el código debe ser algo parecido a esto:

<script type="text/JavaScript">

function validar()

{

with(document.formulario) {

var count = 0;

for (i=0; i<duracion.length; i++) {

if (duracion[i].checked == false) {

alert("hay que seleccionar alguna opcion");

return false;

}

Donde el botón de radio es "duración"

Lamentablemente, no me funciona.

Lo único que quiero es que haya que seleccionar alguna opción, y que si no
salte el aviso...
Post by stripTM
Post by Xabier Giménez Sasieta
Gracias!
Ya me sale el aviso de que faltan datos, gracias por la información...
Lo que pasa ahora es que, tras aceptar la ventana emergente de que faltan
datos, sigue enviando los datos al script php, en lugar de quedarse en la
página del formulario sin enviar nada... :-(
añadele el return
<form ... onsubmit="return validar();"> y asegurate que la función
devuelva true cuando el formulario está bien.
Por cierto la defición correcta de la etiqueta script no es
<script language="JavaScript">
sino
<script type="text/javascript">
--
Saludos -=stripTM=-
Alvaro G. Vicario
2004-09-08 21:07:52 UTC
Permalink
Post by Xabier Giménez Sasieta
Nuevamente gracias... y nuevamente tengo un nuevo problema, esta vez con la
validación de unos botones tipo radio...
Te copio la función que me escribí en su día. A mí me saca de muchos apuros
porque ya ni me acuerdo de cómo funciona ;-)

El argumento es el objeto (en tu caso document.formulario.loquesea) y
devuelve el valor de la opción seleccionada, o cadena vacía si no se ha
elegido ninguna.



/*
* Devuelve el valor seleccionado en una lista de tipo "radio"
*/
function valorRadio(lista)
{
for(i=0; i<lista.length; i++)
if(lista[i].checked)
return lista[i].value;
return "";
}
--
-+ Álvaro G. Vicario - Burgos, Spain
+- http://www.demogracia.com (la web de humor barnizada para la intemperie)
++ Las dudas informáticas recibidas por correo irán directas a la papelera
-+ I'm not a free help desk, please don't e-mail me your questions
--
stripTM
2004-09-08 21:09:51 UTC
Permalink
Post by Xabier Giménez Sasieta
Nuevamente gracias... y nuevamente tengo un nuevo problema, esta vez con la
validación de unos botones tipo radio... he estado mirando por ahi y al
<script type="text/JavaScript">
function validar()
{
with(document.formulario) {
var count = 0;
for (i=0; i<duracion.length; i++) {
if (duracion[i].checked == false) {
alert("hay que seleccionar alguna opcion");
return false;
}
Donde el botón de radio es "duración"
Lamentablemente, no me funciona.
Lo único que quiero es que haya que seleccionar alguna opción, y que si no
salte el aviso...
Es que tu función es poco reutilizable, al llevar el formulario
declarado dentro la función si alguna vez cambia de nombre o quieres
reutilizar la función para otro formulario vas a tener problemas, haz
algo así:
-En el el html:
<form ... onsubmit="return validar(this);">
<input type="radio" name="duracion" value="60" />
<input type="radio" name="duracion" value="30" />

con esto le pasas a la función el propio formulario...

-Y en el javascript (ojo que las líneas se pueden haber cortado):
<script type="text/JavaScript">
function validar(oFormularioValidar) {
var bValido = false;
for (i=0; i < oFormularioValidar.duracion.length; i++) {
bValido = bValido || oFormularioValidar.duracion[i].checked;
}
if (!bValido)
alert ("No hay ninguna opción marcada.");
return bValido;
}
</script >
--
Saludos -=stripTM=-
Continúe leyendo en narkive:
Loading...