Foros del Web » Programando para Internet » Javascript »

Envio de Email form (campos vacios)

Estas en el tema de Envio de Email form (campos vacios) en el foro de Javascript en Foros del Web. Saludos, Estoy haciendo un formulario y bueno ya lo que queria funciona... lo que no me hace es que cuando el formulariop esta totalmente vacio ...
  #1 (permalink)  
Antiguo 24/09/2012, 08:20
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Envio de Email form (campos vacios)

Saludos,
Estoy haciendo un formulario y bueno ya lo que queria funciona... lo que no me hace es que cuando el formulariop esta totalmente vacio no me da ninguna advertencia, de igual manera envia el formulaio vacio....

esto es lo q estoy usando para validar campos..
Código PHP:
<script type="text/javascript">
var 
numero 0;

// Funciones comunes
c= function (tag) { // Crea un elemento
   
return document.createElement(tag);
}
= function (id) { // Retorna un elemento en base al id
   
return document.getElementById(id);
}
= function (evt) { // Retorna el evento
   
return (!evt) ? event evt;
}
= function (evt) { // Retorna el objeto que genera el evento
   
return evt.srcElement ?  evt.srcElement evt.target;
}

addField = function () {
   
container d('files');
   
   
span c('SPAN');
   
span.className 'file';
   
span.id 'file' + (++numero);

   
field c('INPUT');   
   
field.name 'archivos[]';
   
field.type 'file';
   
   
c('A');
   
a.name span.id;
   
a.href '#';
   
a.onclick removeField;
   
a.innerHTML 'Quitar';

   
span.appendChild(field);
   
span.appendChild(a);
   
container.appendChild(span);
}
removeField = function (evt) {
   
lnk f(e(evt));
   
span d(lnk.name);
   
span.parentNode.removeChild(span);
}
function 
MM_validateForm() { //v4.0
  
if (document.getElementById){
    var 
i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (
i=0i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (
val) { nm=val.name; if ((val=val.value)!="") {
        if (
test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (
p<|| p==(val.length-1)) errors+='- '+nm+' Debe contener al menos una dirección de Email.\n';
        } else if (
test!='R') { num parseFloat(val);
          if (
isNaN(val)) errors+='- '+nm+' Debe poseer un número.\n';
          if (
test.indexOf('inRange') != -1) { p=test.indexOf(':');
            
min=test.substring(8,p); max=test.substring(p+1);
            if (
num<min || max<numerrors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (
test.charAt(0) == 'R'errors += '- '+nm+' Campo Obligatorio.\n'; }
    } if (
errorsalert('Ha ocurrido lo siguiente:\n'+errors);
    
document.MM_returnValue = (errors == '');
} }
</script> 
pero porque al darle enviar con todos los campos vacios sigue enviando>??? que debo hacer???

Gracias de antemano
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 24/09/2012, 08:22
Avatar de Alexis_Mejias  
Fecha de Ingreso: enero-2005
Ubicación: Santiago
Mensajes: 77
Antigüedad: 19 años, 4 meses
Puntos: 17
Respuesta: Envio de Email form (campos vacios)

Ahora los navegadores te dan una opción super simple...
Se llama Consola, esta te permite vr los errores de javascript que tu no puedes distinguir.

f12 y aparece la consola....

Pruebalo y nos avisas..

Saludos,
__________________
Alexis Mejias C.
Freelancer Chile - Si te sirvió puntúa positivo
Blog Personal
  #3 (permalink)  
Antiguo 24/09/2012, 08:35
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Envio de Email form (campos vacios)

Si, eso lo se, lo que quisiera saber es si hay alguna manera se hacer que el formulario no envie los campos vacios... Si te fijas y lees el código no hay ningun script para eso

Acabo de usar este pero no funciona

Código PHP:
<script language="JavaScript" type="text/JavaScript">

function 
valida_envia(){
if(
document.frm.nombre.value == "") {
alert("Por favor indique Su Nombre");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.rif.value == "") {
alert("Por favor indique Su RIF");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.to3.value == "") {
alert("Por favor indique Su Dirección");
document.frm.poblacion.focus();
return 
0;
}

if(
document.frm.to2.value == "") {
alert("Por favor indique Su Teléfono");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.to8.value == "") {
alert("Por favor indique Su Email");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.to10.value == "") {
alert("Por favor indique Un nombre para SubDominio");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.mision.value == "") {
alert("Por favor ingrese su Misión");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.vision.value == "") {
alert("Por favor ingrese su Visión");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.servicios.value == "") {
alert("Por favor ingrese sus Servicios");
document.frm.nombre.focus();
return 
0;
}

alert("Muchas gracias por Comunicarse con nosotros");
document.frm.submit();
return 
true;
}
</script> 
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #4 (permalink)  
Antiguo 24/09/2012, 09:00
Avatar de Alexis_Mejias  
Fecha de Ingreso: enero-2005
Ubicación: Santiago
Mensajes: 77
Antigüedad: 19 años, 4 meses
Puntos: 17
Respuesta: Envio de Email form (campos vacios)

Puedes poner el HTML junto con el FORM?

Saludos
__________________
Alexis Mejias C.
Freelancer Chile - Si te sirvió puntúa positivo
Blog Personal
  #5 (permalink)  
Antiguo 24/09/2012, 09:38
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Envio de Email form (campos vacios)

uy.... el foto no me deja, sobre pasa la cantidad de caracteres a mas del doble por la magnitud del formulario
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #6 (permalink)  
Antiguo 24/09/2012, 09:54
Avatar de Alexis_Mejias  
Fecha de Ingreso: enero-2005
Ubicación: Santiago
Mensajes: 77
Antigüedad: 19 años, 4 meses
Puntos: 17
Respuesta: Envio de Email form (campos vacios)

Cita:
Iniciado por T4ke0veR Ver Mensaje
uy.... el foto no me deja, sobre pasa la cantidad de caracteres a mas del doble por la magnitud del formulario
Pon donde invocas la función de validación

Saludos!!
__________________
Alexis Mejias C.
Freelancer Chile - Si te sirvió puntúa positivo
Blog Personal
  #7 (permalink)  
Antiguo 24/09/2012, 10:09
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Envio de Email form (campos vacios)

Hola:

return 0 es distinto a return false... las cancelaciones se hacen devolviendo el valor false al evento de envío...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 24/09/2012, 10:10
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Envio de Email form (campos vacios)

Cita:
Iniciado por T4ke0veR Ver Mensaje
Si, eso lo se, lo que quisiera saber es si hay alguna manera se hacer que el formulario no envie los campos vacios... Si te fijas y lees el código no hay ningun script para eso

Acabo de usar este pero no funciona

Código PHP:
<script language="JavaScript" type="text/JavaScript">

function 
valida_envia(){
if(
document.frm.nombre.value == "") {
alert("Por favor indique Su Nombre");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.rif.value == "") {
alert("Por favor indique Su RIF");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.to3.value == "") {
alert("Por favor indique Su Dirección");
document.frm.poblacion.focus();
return 
0;
}

if(
document.frm.to2.value == "") {
alert("Por favor indique Su Teléfono");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.to8.value == "") {
alert("Por favor indique Su Email");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.to10.value == "") {
alert("Por favor indique Un nombre para SubDominio");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.mision.value == "") {
alert("Por favor ingrese su Misión");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.vision.value == "") {
alert("Por favor ingrese su Visión");
document.frm.nombre.focus();
return 
0;
}

if(
document.frm.servicios.value == "") {
alert("Por favor ingrese sus Servicios");
document.frm.nombre.focus();
return 
0;
}

alert("Muchas gracias por Comunicarse con nosotros");
document.frm.submit();
return 
true;
}
</script> 
Primero se supone que tu tienes un formulario de esta manera

Código HTML:
Ver original
  1. <form name="frm" onsubmit="return valida_envia()">
  2.     ...
  3.     ...
  4.     ...
  5.     <input type="submit" value="Enviar"/>
  6. </form>

Luego siempre trata de validar usando el onsubmit, si quieres enviar como muestra tu ejemplo usa return true si todo esta correcto de lo contrario si existe un error o falta un campo a completar usa return false no return 0 como lo estas haciendo.

Segundo no trates de usar document.frm trata de usar documents.forms["name_form"] tu código debe quedar algo como esto

Código Javascript:
Ver original
  1. //obtenemos el nombre de tu formulario
  2. var frm = document.forms['frm'];
  3. //empezamos a validar
  4. if(frm.elements['nombre_campo1'].value!=""){
  5.     alert('Campo1 erroneo');
  6.     return false;
  7. }else if(frm.elements['nombre_campo2'].value!=""){
  8.     alert('Campo2 erroneo');
  9.     return false;
  10. }else if(frm.elements['nombre_campo3'].value!=""){
  11.     alert('Campo3 erroneo');
  12.     return false;
  13. }else if(frm.elements['nombre_campo4'].value!=""){
  14.     alert('Campo4 erroneo');
  15.     return false;
  16. }else if(frm.elements['nombre_campo5'].value!=""){
  17.     alert('Campo8 erroneo');
  18.     return false;
  19. }else if(frm.elements['nombre_campo6'].value!=""){
  20.     alert('Campo6 erroneo');
  21.     return false;
  22. }else{
  23.     alert('enviando');
  24.     return true;
  25. }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #9 (permalink)  
Antiguo 24/09/2012, 11:31
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Envio de Email form (campos vacios)

Gracias muchachos por sus respuestas probaré y les comentaré!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...

Etiquetas: campos, email, formulario, funcion, html, input
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:10.