Foros del Web » Programando para Internet » Javascript »

Mensaje de alerta en validación de datos

Estas en el tema de Mensaje de alerta en validación de datos en el foro de Javascript en Foros del Web. Hola, me gustaría saber cómo puedo mostrar mesajes de alerta en una página web. En concreto es una página .jsp con casillas que debe rellenar ...
  #1 (permalink)  
Antiguo 17/05/2007, 06:42
nae
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 1
Pregunta Mensaje de alerta en validación de datos

Hola,
me gustaría saber cómo puedo mostrar mesajes de alerta en una página web. En concreto es una página .jsp con casillas que debe rellenar el usuario, a las casillas que deba contener fecha o números les he agragado una fución javascript para validarlas

Código:
<input name="fnumero" type="text" id="numero" onChange="ValidarFeha(document.getElmentById("numero").value)">
Si no es una fecha, entonces quiero mostrar un mensaje de alerta

Código:
function ValidarNum(cadena){
if (isNaN(cadena)){
        	alert('Número no válido')  //mensaje de alerta?????????
		
}
}
Debería ser un mensje que no sustituyera a la página y que al cerrarlo se pudiera continuar rellenando casillas en esa página, ¿cómo lo hago?

Muchas gracias y un saludo
  #2 (permalink)  
Antiguo 17/05/2007, 07:45
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Mensaje de alerta en validación de datos

¿Qué es lo que quieres hacer? ¿No te vale el alert? ¿Texto en pantalla?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 17/05/2007, 08:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Mensaje de alerta en validación de datos

Hola:

Parece que tienes una de esas validaciones "horrorosas" que utilizan el método submit de los formularios... suelen dar problemas porque no es la forma "buena de validar"... tal vez esté equivocado, pero si nos muestras el contenido de tu validación será mejor para ayudarte...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 17/05/2007, 15:15
nae
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 1
Re: Mensaje de alerta en validación de datos

Hola, este es todo el código de la página, si "alert" me debería mostrar el mensaje, entonces puede que no está escribiendo correctamente la llamada a la función, en la que intento pasar la cadena de caracteres escrita en el input

Código:
<%@page import="java.util.*" %>
<%   
    //recuperamos los tipo de items de la sesion
	HttpSession miSesion = request.getSession(false);
	Vector vTiposItem = (Vector)miSesion.getAttribute("tiposItem");	
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<form action="/encuesta/servnuevaencuesta" method=post>
<!-- Colocar dentro de la etiqueta <HEAD> --> 
<style>
<!--
#foldheader{cursor:hand ; font-weight:bold ;
list-style-image:url(fold.gif)}
#foldinglist{list-style-image:url(list.gif)}
//-->
</style>
<script language="JavaScript1.2">
<!--
var head="display:''"
img1=new Image()
img1.src="fold.gif"
img2=new Image()
img2.src="open.gif"

function change(){
if(!document.all)
return
if (event.srcElement.id=="foldheader") {
var srcIndex = event.srcElement.sourceIndex
var nested = document.all[srcIndex+1]
if (nested.style.display=="none") {
nested.style.display=''
event.srcElement.style.listStyleImage="url(open.gif)"
}
else {
nested.style.display="none"
event.srcElement.style.listStyleImage="url(fold.gif)"
}
}
}

document.onclick=change

//-->
function ValidarNum(cadena){
if (isNaN(cadena)){
        	alert('Número inválido')		
}
}
-->
function ValidarFecha(cadena){
var Fecha= new String(Cadena)	// Crea un string
	var RealFecha= new Date()	// Para sacar la fecha de hoy
	// Cadena Año
	var Ano= new String(Fecha.substring(Fecha.lastIndexOf("-")+1,Fecha.length))
	// Cadena Mes
	var Mes= new String(Fecha.substring(Fecha.indexOf("-")+1,Fecha.lastIndexOf("-")))
	// Cadena Día
	var Dia= new String(Fecha.substring(0,Fecha.indexOf("-")))

	// Valido el año
	if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){
        	alert('Año inválido')
		
	}
	// Valido el Mes
	if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){
		alert('Mes inválido')
		
	}
	// Valido el Dia
	if (isNaN(Dia) || parseInt(Dia)<1 || parseInt(Dia)>31){
		alert('Día inválido')
		
	}
	if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
		if (Mes==2 && Dia > 28 || Dia>30) {
			alert('Día inválido')
			
		}
	}

}
</script>
<title>Editor de encuestas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body style="font-family: Verdana">
<table width="98%" height="521" border="0">
  <tr> 
    <td width="31%" height="88"> <div align="center"><font color="#8080FF" size="7" face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><strong> 
        </strong></font></div></td>
    <td width="69%" height="88"><font color="#8080FF" size="7" face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><strong>DATOS 
      DE LA ENCUESTA </strong></font></td>
  </tr>
  <tr> 
    <td height="267" colspan="2" valign="top"> <div align="center"> 
        <table width="93%" height="343" border="0">
          <tr> 
            <td width="28%" height="339" valign="top"> 
              <div align="left"> 
              
			  <ul>
              <li> <a href="/encuesta/paginas/DatosCrearEncuesta1.jsp"> Datos de la encuesta </a></li>
              <li id="foldheader"> Preguntas </li>
              <ul id="foldinglist" style="display:none"&{head};>
                <li> Añadir pregunta </li>
                <li> Ver preguntas </li>
              </ul>
              <li> Vista previa </li>
              <li> Finalizar encuesta </li>
              <li> Eliminar encuesta </li>
            </ul>
                    
              </div></td>
            <td width="72%" valign="top"> <table width="96%" height="321" border="0">
                <tr> 
                  <td height="48" colspan="2" bgcolor="#FFFF99"><em><font size="5" face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS">El 
                    usuario <%= miSesion.getValue("nombreusu")%> va a generar 
                    la siguiente encuesta: </font></em></td>
                </tr>
                <tr> 
                  <td width="8%" bgcolor="#FFFF99">&nbsp;</td>
                  <td width="92%" height="38" bgcolor="#FFFF99"><div align="justify"><font face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><font size="4"> 
                      Identificador de la encuesta(*) 
                      <input name="idencuesta" type="text" id="idencuesta" >
                      </font></font></div></td>
                </tr>
                <tr> 
                  <td bgcolor="#FFFF99">&nbsp;</td>
                  <td height="38" bgcolor="#FFFF99"> <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><font size="4" face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS">Descripci&oacute;n 
                      </font><font face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><font size="4" face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"> 
                      <input name="descripcion" type="text" id="descripcion" size="50">
                      </font></font><font size="4" face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"> 
                      </font></font></div></td>
                </tr>
                <tr> 
                  <td bgcolor="#FFFF99">&nbsp;</td>
                  <td height="38" bgcolor="#FFFF99"> <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><font face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><font size="4">T&iacute;tulo(*) 
                      <input name="titulo" type="text" size="50" id="titulo" >
                      </font></font></font></div></td>
                </tr>
                <tr> 
                  <td bgcolor="#FFFF99">&nbsp;</td>
                  <td height="38" bgcolor="#FFFF99"> <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><font face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><font face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><font size="4"> 
                      </font></font><font size="4">Fecha de creaci&oacute;n(*)</font><font size="4" face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"> 
                      <input name="fechacreacion" type="text" id="fechacreacion" value= <%= miSesion.getValue("fechaHoy")%> onChange="ValidarFeha(document.getElmentById("fechacreacion").value)">
                      </font></font></font></div></td>
                </tr>
                <tr> 
                  <td bgcolor="#FFFF99">&nbsp;</td>
                  <td height="39" bgcolor="#FFFF99"><font face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"><font size="4">Fecha 
                    l&iacute;mite para responder la encuesta 
                    <input name="fechalimite" type="text" id="fechalimite" onChange="ValidarFeha(document.getElmentById("fechalimite").value)">
                    </font></font><font size="4" face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS">&nbsp; 
                    </font></td>
                </tr>
                <tr> 
                  <td bgcolor="#FFFF99">&nbsp;</td>
                  <td height="38" bgcolor="#FFFF99"><font size="4" face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS">N&uacute;mero 
                    m&aacute;ximo de encuestas a realizar 
                    <input name="nummaxresp" type="text" id="nummaxresp" onChange="ValidarNum(document.getElmentById("nummaxresp").value)">
                    </font></td>
                </tr>
                <tr bgcolor="#FFFFFF"> 
                  <td height="26" colspan="2"><font size="4" face="Verdana, Arial, Helvetica, sans-serif, Comic Sans MS"> 
                    <label><font size="2">Los</font></label>
                    <font size="2"> campos marcados con (*) son obligatorios. 
                    El identificador de la encuesta no puede tener espacios en 
                    blanco. </font></font></td>
                </tr>
              </table></td>
          </tr>
        </table>
        <p> 
          <input type="submit" name="Submit" value="Enviar">
        </p>
      </div></td>
  </tr>
</table>
</body>
</html>
Bueno, os agradezco cualquier ayuda.
Un saludo.
  #5 (permalink)  
Antiguo 23/05/2007, 00:34
nae
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 1
Pregunta Re: Mensaje de alerta en validación de datos

Hola,
creo que me he pasado poniendo código, comprendo que puede asustar o aburrir, así que simplifico, únicamente pongo la función js que valida los tipos de datos y los input donde el usuario introduce los datos.
Si alguien me puede decir cómo hacer esto para que funcione se lo agradezco muchísimo.

Código:
<%@page import="java.util.*" %>
<%   
    //recuperamos los tipo de items de la sesion
	HttpSession miSesion = request.getSession(false);
		
%>
<html>
<head>
<form action="/encuesta/servnuevaencuesta" method=post>
<script language="JavaScript1.2">

function ValidarNum(cadena){
if (isNaN(cadena)){
        	alert('Número inválido')		
}
}
-->
function ValidarFecha(cadena){
var Fecha= new String(Cadena)	// Crea un string
	var RealFecha= new Date()	// Para sacar la fecha de hoy
	// Cadena Año
	var Ano= new String(Fecha.substring(Fecha.lastIndexOf("-")+1,Fecha.length))
	// Cadena Mes
	var Mes= new String(Fecha.substring(Fecha.indexOf("-")+1,Fecha.lastIndexOf("-")))
	// Cadena Día
	var Dia= new String(Fecha.substring(0,Fecha.indexOf("-")))

	// Valido el año
	if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){
        	alert('Año inválido')
		
	}
	// Valido el Mes
	if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){
		alert('Mes inválido')
		
	}
	// Valido el Dia
	if (isNaN(Dia) || parseInt(Dia)<1 || parseInt(Dia)>31){
		alert('Día inválido')
		
	}
	if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
		if (Mes==2 && Dia > 28 || Dia>30) {
			alert('Día inválido')
			
		}
	}

}
</script>
<title>Editor de encuestas</title>
</head>

<body style="font-family: Verdana">
<p> Fecha actual 
  <input name="fechacreacion" type="text" id="fechacreacion" value= <%= miSesion.getValue("fechaHoy")%> onChange="ValidarFeha(document.getElmentById("fechacreacion").value)">
</p>
<tr> Fecha l&iacute;mite 
<tr> 
  <input name="fechalimite" type="text" id="fechalimite" onChange="ValidarFeha(document.getElmentById("fechalimite").value)">
  <p>N&uacute;mero m&aacute;ximo de respuestas 
    <input name="nummaxresp" type="text" id="nummaxresp2" onChange="ValidarNum(document.getElmentById("nummaxresp").value)">
  </p>
  <p>
    <input type="submit" name="Submit" value="Enviar">
  </p>
  #6 (permalink)  
Antiguo 23/05/2007, 02:12
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Mensaje de alerta en validación de datos

Hola:

Estás organizando tu página muy mal...

El form (la etiqueta) lo tienes en el bloque head y debe estar en el body... no lo estás cerrando (</form>...)

Prepara la página sin la tabla y solo con el formulario sus controles y sus scripts para poder ver mejor la estructura y el funcionamiento... (si nos pones las cosas fáciles, será mucho mejor)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 23/05/2007, 03:16
nae
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 1
Re: Mensaje de alerta en validación de datos

Vale, gracias, no sabía que el form se colocaba en el body. Ya sabiéndolo lo pondré en su sitio y veré la forma de detectar el tipo fecha y el numérico.
Gracias.
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 05:20.