Llamar dos funciones a la vez y conseguir un mensaje posterior siguiendo lenguaje JSP

Es decir lo de llamarlas a la vez
Y no me sale lo del ; ¿Qué me
puedes aconsejar?
Son dos funciones que verifican si
Los datos introducidos son buenos
El código es el siguiente:
<%@ page import="java.lang.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="oracle.jdbc.driver.*" %>
<%@ page import="oracle.portal.provider.v1.*" %>
<%@ page import="oracle.portal.provider.v1.http.*" %>
<script language=javascript>
function validar(form)
{
for(i=0;i<form.length-1;i++)
{
var elemento=form.elements
if (elemento.name.charAt(0)== "x")
{
//Aqui Valida si el campo esta vacio
if (!elemento.value)
{
alert("Debe llenar todos los campos");
elemento.focus();
return false;
}
}
}
}
function testFecha()
{
var res = true;
var anoBisiesto = false;
var pto_s = document.all['diaD'];
var pto_o = pto_s.options[pto_s.selectedIndex];
var dia = pto_o.value;
pto_s = document.all['mesD'];
pto_o = pto_s.options[pto_s.selectedIndex];
var mes = pto_o.value;
pto_s = document.all['anoD'];
pto_o = pto_s.options[pto_s.selectedIndex];
var ano = pto_o.value;
if ((ano%4 == 0) && ((ano%100!=0) || (ano%400==0)))
{
anoBisiesto = true;
}
if ((dia == 31) && ( (mes == 4) || (mes==6) || (mes==9) || (mes ==11) ))
{
alert('Fecha incorrecta: el mes no tiene 31 dias.');
res = false;
}
if ( (((dia > 28) && (!anoBisiesto)) || ((dia>29) && anoBisiesto)) && (mes==2) )
{
alert('Fecha incorrecta: Febrero no tiene tantos dias.');
res = false;
}
return res;
}
</script>
<link rel="stylesheet" href="<%=HttpPortletRendererUtil.absoluteLink(request,"../intranet.css")%>" type="text/css">
<form name="form" method="post" action="<%=HttpPortletRendererUtil.absoluteLink(request,"Enviar.jsp")%>" onsubmit="return validar(this)">
<%=HttpPortletRendererUtil.htmlFormHiddenFields(request,PortletRendererUtil.PAGE_LINK) %>
<table width="335" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="146" height="28" valign="middle" align="left" class="formularioNormal"><b>Nombre:</b></td>
<td width="189" valign="middle" align="right">
<input type="text" name="xNombre" size="35" maxlength="30">
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>Apellidos:</b></td>
<td valign="middle" align="right">
<input type="text" name="xApellidos" size="35" maxlength="50">
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>E-mail:</b></td>
<td valign="middle" align="right">
<input type="text" name="xEmail" size="35" maxlength="30">
</td>
</tr>
<tr valign="middle" align="center">
<td height="28" colspan="2" valign="top" class="formularioNegrita"><b>Solicitud
de Vacaciones:</b></td>
</tr>
<tr>
<td height="38" valign="middle" align="left" class="formularioNormal"><b>Desde
el día:</b></td>
<td valign="middle" class="formularioNormal" align="left">
<select id="diaD" name="xdiaDesde" size="1">
<%
for (int d=1;d<32;d++)
{
%>
<option value="<%=d%>"><%=d%></option>
<%
} //for de dias
%>
</select>
<select id="mesD" name="xmesDesde" size="1">
<option value="1" >Enero</option>
<option value="2" >Febrero</option>
<option value="3" >Marzo</option>
<option value="4" >Abril</option>
<option value="5" >Mayo</option>
<option value="6" >Junio</option>
<option value="7" >Julio</option>
<option value="8" >Agosto</option>
<option value="9" >Septiembre</option>
<option value="10" >Octubre</option>
<option value="11" >Noviembre</option>
<option value="12" >Diciembre</option>
</select>
<select id="anoD" name="xanoDesde" size="1">
<%
for (int a=2000;a<2020;a++)
{
%>
<option value="<%=a%>"><%=a%></option>
<%
} //for de años
%>
</select>
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>Hasta
el día:</b></td>
<td valign="middle" class="formularioNormal" align="left">
<select id="diaD" name="xdiaHasta" size="1">
<%
for (int d=1;d<32;d++)
{
%>
<option value="<%=d%>"><%=d%></option>
<%
} //for de dias
%>
</select>
<select id="mesD" name="xmesHasta" size="1">
<option value="1" >Enero</option>
<option value="2" >Febrero</option>
<option value="3" >Marzo</option>
<option value="4" >Abril</option>
<option value="5" >Mayo</option>
<option value="6" >Junio</option>
<option value="7" >Julio</option>
<option value="8" >Agosto</option>
<option value="9" >Septiembre</option>
<option value="10" >Octubre</option>
<option value="11" >Noviembre</option>
<option value="12" >Diciembre</option>
</select>
<select id="anoD" name="xanoHasta"...

1 respuesta

Respuesta
1
Como estamos, te comento como hacerlo. Vamos a hacerlo de formna que una funcion llame a la otra, y el onSubmit del formulario lo cambiamos por el onClick en el boton.
LKa funcion quedaria asi, mira a ver si esta bien, por si se me ha olviado algun punto y coma o algo parecido:
<script language=javascript>
function validar()
{
for(i=0;i<form.length-1;i++)
{
var elemento=form.elements
if (elemento.name.charAt(0)== "x")
{
//Aqui Valida si el campo esta vacio
if (!elemento.value)
{
alert("Debe llenar todos los campos");
elemento.focus();
testFecha
}
}
}
}
function testFecha()
{
var res = true;
var anoBisiesto = false;
var pto_s = document.all['diaD'];
var pto_o = pto_s.options[pto_s.selectedIndex];
var dia = pto_o.value;
pto_s = document.all['mesD'];
pto_o = pto_s.options[pto_s.selectedIndex];
var mes = pto_o.value;
pto_s = document.all['anoD'];
pto_o = pto_s.options[pto_s.selectedIndex];
var ano = pto_o.value;
if ((ano%4 == 0) && ((ano%100!=0) || (ano%400==0)))
{
anoBisiesto = true;
}
else if ((dia == 31) && ( (mes == 4) || (mes==6) || (mes==9) || (mes ==11) ))
{
alert('Fecha incorrecta: el mes no tiene 31 dias.');
}
else if ( (((dia > 28) && (!anoBisiesto)) || ((dia>29) && anoBisiesto)) && (mes==2) )
{
alert('Fecha incorrecta: Febrero no tiene tantos dias.');
;
}
else
{
docuemnt.forms[0].submit();
};
}
</script>
Prueba a ver si te funciona y me comentas.
Nada mas.
<%@ page import="java.lang.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="oracle.jdbc.driver.*" %>
<%@ page import="oracle.portal.provider.v1.*" %>
<%@ page import="oracle.portal.provider.v1.http.*" %>
<script language=javascript>
function validar()
{
for(i=0;i<form.length-1;i++)
{
var elemento=form.elements
if (elemento.name.charAt(0)== "x")
{
//Aqui Valida si el campo esta vacio
if (!elemento.value)
{
alert("Debe llenar todos los campos");
elemento.focus();
testFecha
}
}
}
}
function testFecha()
{
var res = true;
var anoBisiesto = false;
var pto_s = document.all['diaD'];
var pto_o = pto_s.options[pto_s.selectedIndex];
var dia = pto_o.value;
pto_s = document.all['mesD'];
pto_o = pto_s.options[pto_s.selectedIndex];
var mes = pto_o.value;
pto_s = document.all['anoD'];
pto_o = pto_s.options[pto_s.selectedIndex];
var ano = pto_o.value;
if ((ano%4 == 0) && ((ano%100!=0) || (ano%400==0)))
{
anoBisiesto = true;
}
else if ((dia == 31) && ( (mes == 4) || (mes==6) || (mes==9) || (mes ==11) ))
{
alert('Fecha incorrecta: el mes no tiene 31 dias.');
}
else if ( (((dia > 28) && (!anoBisiesto)) || ((dia>29) && anoBisiesto)) && (mes==2) )
{
alert('Fecha incorrecta: Febrero no tiene tantos dias.');
}
else
{
document.forms[0].submit();
}
}
</script>
<link rel="stylesheet" href="<%=HttpPortletRendererUtil.absoluteLink(request,"../intranet.css")%>" type="text/css">
<form name="form" method="post" action="<%=HttpPortletRendererUtil.absoluteLink(request,"Enviar.jsp")%>" >
<%=HttpPortletRendererUtil.htmlFormHiddenFields(request,PortletRendererUtil.PAGE_LINK) %>
<table width="335" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="146" height="28" valign="middle" align="left" class="formularioNormal"><b>Nombre:</b></td>
<td width="189" valign="middle" align="right">
<input type="text" name="xNombre" size="35" maxlength="30">
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>Apellidos:</b></td>
<td valign="middle" align="right">
<input type="text" name="xApellidos" size="35" maxlength="50">
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>E-mail:</b></td>
<td valign="middle" align="right">
<input type="text" name="xEmail" size="35" maxlength="30">
</td>
</tr>
<tr valign="middle" align="center">
<td height="28" colspan="2" valign="top" class="formularioNegrita"><b>Solicitud
de Vacaciones:</b></td>
</tr>
<tr>
<td height="38" valign="middle" align="left" class="formularioNormal"><b>Desde
el día:</b></td>
<td valign="middle" class="formularioNormal" align="left">
<select id="diaD" name="xdiaDesde" size="1">
<%
for (int d=1;d<32;d++)
{
%>
<option value="<%=d%>"><%=d%></option>
<%
} //for de dias
%>
</select>
<select id="mesD" name="xmesDesde" size="1">
<option value="1" >Enero</option>
<option value="2" >Febrero</option>
<option value="3" >Marzo</option>
<option value="4" >Abril</option>
<option value="5" >Mayo</option>
<option value="6" >Junio</option>
<option value="7" >Julio</option>
<option value="8" >Agosto</option>
<option value="9" >Septiembre</option>
<option value="10" >Octubre</option>
<option value="11" >Noviembre</option>
<option value="12" >Diciembre</option>
</select>
<select id="anoD" name="xanoDesde" size="1">
<%
for (int a=2000;a<2020;a++)
{
%>
<option value="<%=a%>"><%=a%></option>
<%
} //for de años
%>
</select>
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>Hasta
el día:</b></td>
<td valign="middle" class="formularioNormal" align="left">
<select id="diaD" name="xdiaHasta" size="1">
<%
for (int d=1;d<32;d++)
{
%>
<option value="<%=d%>"><%=d%></option>
<%
} //for de dias
%>
</select>
<select id="mesD" name="xmesHasta" size="1">
<option value="1" >Enero</option>
<option value="2" >Febrero</option>
<option value="3" >Marzo</option>
<option value="4" >Abril</option>
<option value="5" >Mayo</option>
<option value="6" >Junio</option>
<option value="7" >Julio</option>
<option value="8" >Agosto</option>
<option value="9" >Septiembre</option>
<option value="10" >Octubre</option>
<option value="11" >Noviembre</option>
<option value="12" >Diciembre</option>
</select>
<select id="anoD" name="xanoHasta" size="1">
<%
for (int a=2000;a<2020;a++)
{
%>
<option value="<%=a%>"><%=a%></option>
<%
} //for de años
%>
</select>
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>Total
días laborables:</b></td>
<td valign="middle" align="left">
<input type="text" name="xTotaldias" size="5" maxlength="30">
</td>
</tr>
<tr valign="middle" align="center">
<td height="38" colspan="2" valign="bottom">
<input type="button" name="Enviar" value="Enviar" onclick="return validar(this)">
</td>
</tr>
</table>
</form>
Le he puesto al boton la propidad
button y luego submit y nada de nada
Al llamar a la segunda funcion hay
que ponerle; ó () ó así está bien?
Gracias
Tranquilidad ante todo, que no panda el cunico jejejeje
Tienes razon, ya te hueles donde esta el fallo, cuando llamas a la segunda funcion tienes que poner el nombre de la funcion, parentesis y punto y coma.
Nada mas, a ver si ahora funciona, esperemos que si.
Si no ya sabes donde estoy.,
UN saludo y suerte
David
Nunca me valida la segunda funcion,
la primera si, pero la segunda no
hace ni caso, es más como tengo
la propiedad del boton: type="button"
pues como no reconoce la segunda
funcion pues no hace ni siquiera
submit
Muchas gracias por aguantar mis
continuas molestias.
De nuevo checor, no te preocupes que no molestas. Ademas, cuando yo tenga una duda ya se a quien voy a recurrir ejejeje.
Mira, para arreglar el problema, quita el focus que tienes antes de llamar a la segunda funcion, y ponle parentesis y punto y coma a la segunda llamada.
Es decir, te quedaria de la siguiente forma.
No consigo hacer lo de las 2 funciones... (14/5/2002)
Es decir lo de llamarlas a la vez
Y no me sale lo del ; ¿Qué me
puedes aconsejar?
Son dos funciones que verifican si
Los datos introducidos son buenos
El código es el siguiente:
<%@ page import="java.lang.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="oracle.jdbc.driver.*" %>
<%@ page import="oracle.portal.provider.v1.*" %>
<%@ page import="oracle.portal.provider.v1.http.*" %>
<script language=javascript>
function validar(form)
{
for(i=0;i<form.length-1;i++)
{
var elemento=form.elements
if (elemento.name.charAt(0)== "x")
{
//Aqui Valida si el campo esta vacio
if (!elemento.value)
{
alert("Debe llenar todos los campos");
elemento.focus();
return false;
}
}
}
}
function testFecha()
{
var res = true;
var anoBisiesto = false;
var pto_s = document.all['diaD'];
var pto_o = pto_s.options[pto_s.selectedIndex];
var dia = pto_o.value;
pto_s = document.all['mesD'];
pto_o = pto_s.options[pto_s.selectedIndex];
var mes = pto_o.value;
pto_s = document.all['anoD'];
pto_o = pto_s.options[pto_s.selectedIndex];
var ano = pto_o.value;
if ((ano%4 == 0) && ((ano%100!=0) || (ano%400==0)))
{
anoBisiesto = true;
}
if ((dia == 31) && ( (mes == 4) || (mes==6) || (mes==9) || (mes ==11) ))
{
alert('Fecha incorrecta: el mes no tiene 31 dias.');
res = false;
}
if ( (((dia > 28) && (!anoBisiesto)) || ((dia>29) && anoBisiesto)) && (mes==2) )
{
alert('Fecha incorrecta: Febrero no tiene tantos dias.');
res = false;
}
return res;
}
</script>
<link rel="stylesheet" href="<%=HttpPortletRendererUtil.absoluteLink(request,"../intranet.css")%>" type="text/css">
<form name="form" method="post" action="<%=HttpPortletRendererUtil.absoluteLink(request,"Enviar.jsp")%>" onsubmit="return validar(this)">
<%=HttpPortletRendererUtil.htmlFormHiddenFields(request,PortletRendererUtil.PAGE_LINK) %>
<table width="335" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="146" height="28" valign="middle" align="left" class="formularioNormal"><b>Nombre:</b></td>
<td width="189" valign="middle" align="right">
<input type="text" name="xNombre" size="35" maxlength="30">
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>Apellidos:</b></td>
<td valign="middle" align="right">
<input type="text" name="xApellidos" size="35" maxlength="50">
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>E-mail:</b></td>
<td valign="middle" align="right">
<input type="text" name="xEmail" size="35" maxlength="30">
</td>
</tr>
<tr valign="middle" align="center">
<td height="28" colspan="2" valign="top" class="formularioNegrita"><b>Solicitud
de Vacaciones:</b></td>
</tr>
<tr>
<td height="38" valign="middle" align="left" class="formularioNormal"><b>Desde
el día:</b></td>
<td valign="middle" class="formularioNormal" align="left">
<select id="diaD" name="xdiaDesde" size="1">
<%
for (int d=1;d<32;d++)
{
%>
<option value="<%=d%>"><%=d%></option>
<%
} //for de dias
%>
</select>
<select id="mesD" name="xmesDesde" size="1">
<option value="1" >Enero</option>
<option value="2" >Febrero</option>
<option value="3" >Marzo</option>
<option value="4" >Abril</option>
<option value="5" >Mayo</option>
<option value="6" >Junio</option>
<option value="7" >Julio</option>
<option value="8" >Agosto</option>
<option value="9" >Septiembre</option>
<option value="10" >Octubre</option>
<option value="11" >Noviembre</option>
<option value="12" >Diciembre</option>
</select>
<select id="anoD" name="xanoDesde" size="1">
<%
for (int a=2000;a<2020;a++)
{
%>
<option value="<%=a%>"><%=a%></option>
<%
} //for de años
%>
</select>
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>Hasta
el día:</b></td>
<td valign="middle" class="formularioNormal" align="left">
<select id="diaD" name="xdiaHasta" size="1">
<%
for (int d=1;d<32;d++)
{
%>
<option value="<%=d%>"><%=d%></option>
<%
} //for de dias
%>
</select>
<select id="mesD" name="xmesHasta" size="1">
<option value="1" >Enero</option>
<option value="2" >Febrero</option>
<option value="3" >Marzo</option>
<option value="4" >Abril</option>
<option value="5" >Mayo</option>
<option value="6" >Junio</option>
<option value="7" >Julio</option>
<option value="8" >Agosto</option>
<option value="9" >Septiembre</option>
<option value="10" >Octubre</option>
<option value="11" >Noviembre</option>
<option value="12" >Diciembre</option>
</select>
<select id="anoD" name="xanoHasta" size="1">
<%
for (int a=2000;a<2020;a++)
{
%>
<option value="<%=a%>"><%=a%></option>
<%
} //for de años
%>
</select>
</td>
</tr>
<tr>
<td height="28" valign="middle" align="left" class="formularioNormal"><b>Total
días laborables:</b></td>
<td valign="middle" align="left">
<input type="text" name="xTotaldias" size="5" maxlength="30">
</td>
</tr>
<tr valign="middle" align="center">
<td height="38" colspan="2" valign="bottom">
<input type="submit" name="Enviar" value="Enviar">
</td>
</tr>
</table>
</form>
Gracias, Un saludo
re: 2 funciones (16/5/2002)
Buenas checor, como estamos, te comento como hacerlo. Vamos a hacerlo de formna que una funcion llame a la otra, y el onSubmit del formulario lo cambiamos por el onClick en el boton.
LKa funcion quedaria asi, mira a ver si esta bien, por si se me ha olviado algun punto y coma o algo parecido:
<script language=javascript>
function validar()
{
for(i=0;i<form.length-1;i++)
{
var elemento=form.elements
if (elemento.name.charAt(0)== "x")
{
//Aqui Valida si el campo esta vacio
if (!elemento.value)
{
alert("Debe llenar todos los campos");
elemento.focus();
testFecha
}
}
}
}
function testFecha()
{
var res = true;
var anoBisiesto = false;
var pto_s = document.all['diaD'];
var pto_o = pto_s.options[pto_s.selectedIndex];
var dia = pto_o.value;
pto_s = document.all['mesD'];
pto_o = pto_s.options[pto_s.selectedIndex];
var mes = pto_o.value;
pto_s = document.all['anoD'];
pto_o = pto_s.options[pto_s.selectedIndex];
var ano = pto_o.value;
if ((ano%4 == 0) && ((ano%100!=0) || (ano%400==0)))
{
anoBisiesto = true;
}
else if ((dia == 31) && ( (mes == 4) || (mes==6) || (mes==9) || (mes ==11) ))
{
alert('Fecha incorrecta: el mes no tiene 31 dias.');
}
else if ( (((dia > 28) && (!anoBisiesto)) || ((dia>29) && anoBisiesto)) && (mes==2) )
{
alert('Fecha incorrecta: Febrero no tiene tantos dias.');
;
}
else
{
docuemnt.forms[0].submit();
};
}
</script>
Prueba a ver si te funciona y me comentas.
Nada mas, un saludo y suerte
David
tio no me sale, he puesto este codigo: (16/5/2002)
<%@ page import="java.lang.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="oracle.jdbc.driver.*" %>
<%@ page import="oracle.portal.provider.v1.*" %>
<%@ page import="oracle.portal.provider.v1.http.*" %>
<script language=javascript>
function validar()
{
for(i=0;i<form.length-1;i++)
{
var elemento=form.elements
if (elemento.name.charAt(0)== "x")
{
//Aqui Valida si el campo esta vacio
if (!elemento.value)
{
alert("Debe llenar todos los campos");
testFecha();
}
}
}
}
Mira a ver si ahora te sale. Como consejo, es posible que el fallo lo tengas en la segunda funcion, ponle a la entrada de la misma un alert("Ha entrado"); para saber que la llamada se esta realizando.
Nada mas, espero que ahora si quye funcione.
UN saludo, y si no sale, me mandas otro mensaje.-
David
Muchisimas gracias, tio.
Acabo de poner la alerta y
a entrado. Tienes razón seguro que
tengo mal la funcion.
Voy a mirar que he echo mal
en la funcion.
Lo siento por haberte molestado tanto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas