Foros del Web » Programando para Internet » Javascript »

al cambiar etiqueta html si valida el formulario

Estas en el tema de al cambiar etiqueta html si valida el formulario en el foro de Javascript en Foros del Web. Hola les deseaba hacer una consulta simple resulta que tengo un codigo que valido un formulario pero tengo un problema por que cuando tengo la ...
  #1 (permalink)  
Antiguo 19/07/2009, 19:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 71
Antigüedad: 15 años
Puntos: 1
al cambiar etiqueta html si valida el formulario

Hola les deseaba hacer una consulta simple resulta que tengo un codigo que valido un formulario pero tengo un problema por que cuando tengo la linea de :

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es"> 
no funciona la validacion en javascript pero cuando tengo solo
Código HTML:
 <html> 
al principio del codigo ahy si me funciona la validacion del formulario por que pasara eso como tengo que dejar el codigo gracias espero que puedan ayudarme.
  #2 (permalink)  
Antiguo 20/07/2009, 02:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: al cambiar etiqueta html si valida el formulario

Tendras algo que no és XHTML, apasar de que has puesto XHTML 1.0 Transitional que rebaja el nivel de exigencia de corrección del codigo, tendras algo que lo le gusta... pero si no nos muestras que és lo que tienes.... no podemos hacer nada.

Solo eso recordarte que XHTML és mas estricto con las normas de sintaxis que HTML.

Quim
  #3 (permalink)  
Antiguo 20/07/2009, 06:24
 
Fecha de Ingreso: mayo-2009
Mensajes: 71
Antigüedad: 15 años
Puntos: 1
Respuesta: al cambiar etiqueta html si valida el formulario

valide el codigo en Markup Validation Service y no encontro ningun error de todas formas dejo el codigo aca :

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulario</title>
<script type="text/javascript">
function eliminaEspacios(cadena)
{
	// Funcion para eliminar espacios delante y detras de cada cadena
	while(cadena.charAt(cadena.length-1)==" ") cadena=cadena.substr(0, cadena.length-1);
	while(cadena.charAt(0)==" ") cadena=cadena.substr(1, cadena.length-1);
	return cadena;
}


function checkFields() {

missinginfo = "";

   // Primer paso: Obtener el rut que ingreso el usuario
    var nameCompleto = document.form1.nombre.value;
    // Eliminamos los caracteres raros, espacios, puntos, guiones.
    // Pasamos a minusculas, y separamos el rut y el digito verificador
    nameCompleto = nameCompleto.replace(/[ \.-]/g, "" );
    nameCompleto = nameCompleto.toLowerCase();
    var nombre = nameCompleto.substring(0, nameCompleto.length - 1)

var nombre1=eliminaEspacios(form1.nombre.value);

var mesaje1=eliminaEspacios(form1.mensaje.value);

var email1=eliminaEspacios(form1.email.value);

if (nombre1=="") {
missinginfo += "\n     - Campo Nombre";

}

if (mesaje1=="") {
missinginfo += "\n     - Campo Mensaje";

}



if ((email1 == "") || 
(document.form1.email.value.indexOf('@') == -1) || 
(document.form1.email.value.indexOf('.') == -1)) {

missinginfo += "\n     - Campo E-mail";

}



if (missinginfo != "") {
missinginfo ="Los siguentes campos del formulario \n no han sido completados o tienen errores: \n" +
"" +
missinginfo + "" +
"\n ";
alert(missinginfo);
return false;
}
else return true;
}

</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="enviar.php" onsubmit="return checkFields();">
<p>
  <select name="correo" id="correo"   style="width:100px" >
    <option selected="selected" value="prensa" > Prensa </option>
    <option  value="ventas"> Ventas </option>
  </select>
</p>
<p> Nombre:<br />
    <label>
  <input name="nombre" type="text" id="nombre" />
    </label>
    <br />
  Telefono:<br />
  <input name="telefono" type="text" id="telefono" />
  <br />
  Email:<br />
  <input name="email" type="text" id="email" />
  <br />
  Mensaje:<br />
  <textarea name="mensaje" id="mensaje" rows="" cols=""></textarea>
  <br />
  <label>
  <input type="submit" name="Submit" value="Enviar Formulario" />
  </label>
</p>
</form>
</body>
</html> 
  #4 (permalink)  
Antiguo 20/07/2009, 06:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: al cambiar etiqueta html si valida el formulario

Hola

Acaba de probarlo y hay ningún error. Lo mas reseñable es que en el campo teléfono puede insertar lo que quieras

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 20/07/2009, 09:29
 
Fecha de Ingreso: mayo-2009
Mensajes: 71
Antigüedad: 15 años
Puntos: 1
Respuesta: al cambiar etiqueta html si valida el formulario

aun asi eliminando el campo telefono no funciona el script con Transitional tendre quie dejar la etiqueta simple de <html> para que funcione . Saludos
  #6 (permalink)  
Antiguo 21/07/2009, 02:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: al cambiar etiqueta html si valida el formulario

El error lo tienes aquí

var nombre1=eliminaEspacios(document.form1.nombre.value);

var mesaje1=eliminaEspacios(document.form1.mensaje.value);

var email1=eliminaEspacios(document.form1.email.value);


Dos comentarios

Como ya te han dicho deberias ver si en el numero de telefono te han puesto cosas que no son numeros o tiene un numero de digitos inferior al esperado (aquí serian 9 digitos o mas...).

Segundo supongo que has copiado el script de alguna parte, el trozo donde se validaba el rut no tine ningun sentido si lo aplicas al campo nombre...

Cita:
// Primer paso: Obtener el rut que ingreso el usuario
var nameCompleto = document.form1.nombre.value;
// Eliminamos los caracteres raros, espacios, puntos, guiones.
// Pasamos a minusculas, y separamos el rut y el digito verificador
nameCompleto = nameCompleto.replace(/[ \.-]/g, "" );
nameCompleto = nameCompleto.toLowerCase();
var nombre = nameCompleto.substring(0, nameCompleto.length - 1)

Tambien falta algun ; pero creo que no es eso....


Quim

Última edición por quimfv; 21/07/2009 a las 02:54
  #7 (permalink)  
Antiguo 21/07/2009, 06:00
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: al cambiar etiqueta html si valida el formulario

Hola

Tarde, pero he entendido cual es el problemas

Prueba así

Código javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="es">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <title>Formulario</title>
  6. <script type="text/javascript">
  7.  
  8. function eliminaEspacios(cadena) {
  9. return (cadena.replace(/(^\s*)|(\s*$)/g,""));
  10.    }
  11.  
  12.  
  13. function checkFields(c) {
  14.  
  15. missinginfo = "";
  16.  
  17.     // Primer paso: Obtener el rut que ingreso el usuario
  18.     var nameCompleto = c.nombre.value;
  19.     // Eliminamos los caracteres raros, espacios, puntos, guiones.
  20.     // Pasamos a minusculas, y separamos el rut y el digito verificador
  21.     nameCompleto = nameCompleto.replace(/[ \.-]/g, "");
  22.     nameCompleto = nameCompleto.toLowerCase();
  23.     var nombre = nameCompleto.substring(0, nameCompleto.length - 1)
  24.  
  25. alert ("Campo con espacios al principio ("+c.nombre.value+") y al final");
  26.  
  27. var nombre1=eliminaEspacios(nombre);
  28.  
  29. alert ("Campo sin espacios al principio ("+nombre1+") y al final");
  30.  
  31. var mesaje1=eliminaEspacios(c.mensaje.value);
  32.  
  33. var email1=eliminaEspacios(c.email.value);
  34.  
  35. if (nombre1=="") {
  36. missinginfo += "\n     - Campo Nombre";
  37.  
  38. }
  39.  
  40. if (mesaje1=="") {
  41. missinginfo += "\n     - Campo Mensaje";
  42.  
  43. }
  44.  
  45.  
  46.  
  47. if ((email1 == "") ||
  48. (c.email.value.indexOf('@') == -1) ||
  49. (c.email.value.indexOf('.') == -1)) {
  50.  
  51. missinginfo += "\n     - Campo E-mail";
  52.  
  53. }
  54.  
  55.  
  56.  
  57. if (missinginfo != "") {
  58. missinginfo ="Los siguentes campos del formulario \n no han sido completados o tienen errores: \n" +
  59. "" +
  60. missinginfo + "" +
  61. "\n ";
  62. alert(missinginfo);
  63. return false;
  64. }
  65. else return true;
  66. }
  67.  
  68. </script>
  69. </head>
  70. <body>
  71. <form id="form1" name="form1" method="post" action="enviar.php" onsubmit="return checkFields(this);">
  72. <p>
  73.   <select name="correo" id="correo"   style="width:100px" >
  74.     <option selected="selected" value="prensa" > Prensa </option>
  75.     <option  value="ventas"> Ventas </option>
  76.   </select>
  77. </p>
  78. <p> Nombre:<br />
  79.     <label>
  80.   <input name="nombre" type="text" id="nombre" />
  81.     </label>
  82.     <br />
  83.   Telefono:<br />
  84.   <input name="telefono" type="text" id="telefono" />
  85.   <br />
  86.   Email:<br />
  87.   <input name="email" type="text" id="email" />
  88.   <br />
  89.   Mensaje:<br />
  90.   <textarea name="mensaje" id="mensaje" rows="" cols=""></textarea>
  91.   <br />
  92.   <label>
  93.   <input type="submit" name="Submit" value="Enviar Formulario" />
  94.   </label>
  95. </p>
  96. </form>
  97. </body>
  98. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 00:45.