Foros del Web » Programando para Internet » Javascript »

onkeypress sobre un campo al hacer un login

Estas en el tema de onkeypress sobre un campo al hacer un login en el foro de Javascript en Foros del Web. Buenas Lo que tengo es un Usuario , Contraseña y un boton de Conectar lo que me queda por controlar es que una vez que ...
  #1 (permalink)  
Antiguo 09/04/2008, 04:39
 
Fecha de Ingreso: junio-2005
Mensajes: 4
Antigüedad: 18 años, 10 meses
Puntos: 0
onkeypress sobre un campo al hacer un login

Buenas

Lo que tengo es un Usuario , Contraseña y un boton de Conectar

lo que me queda por controlar es que una vez que este en el text de "Contraseña"
escriba la contraseña correcta (eso ya lo tengo controlado en validarLogin, no preocuparse por eso) presionar la tecla "enter" y que haga la misma funcion del boton conectar ("submit").

Lo estoy intentando hacer con el evento "onkeypress" de javascript en mi login.jsp

<html>
<head>
<script language="Javascript" type="text/javascript" src="js/general.js">

function presskey(oEvent,oForm)
{
if (oEvent.keyCode == 13)
{
oForm.submit();
}
}
</script>

<title><bean:message key="principal.titulo"/></title>
</head>

<body onload = "document.forms[0].usuario.focus();"
<div class="general" id="general">

<!-- CABECERA DE LA APLICACION -->
<jsp:include page="cabeceraSinLinks.jsp"/>

<!-- PRINCIPAL -->
<html:form action="/validarLogin.htm" >
<div class="principalGrande" id="principalGrande">
:
:
<tr>
<td width="20%"><img src="images/void.gif" width="1" height="1" alt="" /></td>
<td width="20%" align="right" class="txt11G"><bean:message key="login.usuario" /><img src="images/void.gif" width="3" height="1" alt="" /></td>
<td width="40%" align="left"><html:text name="loginForm" property="usuario" maxlength="30" size="30" styleClass="caja_texto" /></td>
<td width="20%"><img src="images/void.gif" width="1" height="1" alt="" /></td>
</tr>
<tr>
<td width="20%"><img src="images/void.gif" width="1" height="1" alt="" /></td>
<td width="20%" align="right" class="txt11G"><bean:message key="login.password" /><img src="images/void.gif" width="3" height="1" alt="" /></td>
<td width="40%" align="left"><html:password name="loginForm" property="password" maxlength="30" size="30" onkeypress="presskey(event,document.forms[0]);" redisplay="false" styleClass="caja_texto"/></td>
<td width="20%"><img src="images/void.gif" width="1" height="1" alt="" /></td>
</tr>
<tr>
<td colspan="4"><img src="images/void.gif" width="1" height="5" alt="" /></td>
</tr>
<tr>
<td width="20%"><img src="images/void.gif" width="1" height="1" alt="" /></td>
<td colspan="2" align="center"><html:button property="seleccionar" styleClass="conectar" value="&nbsp;" onclick="javascript:submit();" /></td>
<td width="20%"><img src="images/void.gif" width="1" height="1" alt="" /></td>
</tr>
:
:


Esto es lo que tengo hasta ahora pero no me funcione, me dice que "se espera un objeto" en la linea donde tengo puesto el onkeypress

a ver si alguien puede ayudarme .. gracias.
  #2 (permalink)  
Antiguo 09/04/2008, 10:28
 
Fecha de Ingreso: junio-2007
Mensajes: 44
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: onkeypress sobre un campo al hacer un login

Hola, bueno mi primera impresion es que mejor le envies o intentes enviar el formulario o nombre del formulario, puede que el document.forms[0], no te este funcionando.

es decir, si tienes...

<form name="formu">
.
.
.
</form>
onkeypess="funcion(event,formu)"=> Si no llegara a tomar en cuenta, puedes hacer un...

onkeypess="funcion(event,document.getElementsByNam e('formu')[0])" o puedes ponerle un
id al formulario lo cual te aliviaría mas la carga, diciendole un getElementById('---')

pues un submit, lo puedes hacer => formu.submit();

Espero haber sido de utilidad, bye...
  #3 (permalink)  
Antiguo 09/04/2008, 15:28
 
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 75
Antigüedad: 16 años
Puntos: 0
Re: onkeypress sobre un campo al hacer un login

Primero que nada deberias especificar sobre que browser estas programando, ya que IE y Firefox tiene distintas formas de capturar un evento.
Paso a explicar:
//EN IE
function keypress(){
var myevent = window.event;
}
//FIrefox y Standard
function keypress(evento){
var myevent = evento;
}
Como lo correcto hacer es buscar una solucion que funcione en todos los navegadores,
propongo la siguiente solución para que pruebes:
//Esta sentencia
onkeypress="presskey(event,document.forms[0]);
//Reemplazarla por esta
onkeypress = "presskey();"
//Ya en la funcion
function presskey(oEvent,oForm)
{
if (oEvent.keyCode == 13)
{
oForm.submit();
}
}
//Reemplazar por
function presskey(evento)
{
var mievento = evento || window.event;
//Como regalo te anticipo que keyCode solo funciona en IE
//Te doy una solucion Multiplataforma
var codigo = mievento.charCode || mievento.keyCode
if(codigo==13){
document.forms[0].submit();
}else{
return false;
}
}
//Espero sea de utilidad
************************
www.JoMiCo.com.ar
************************
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:07.