Validar Enter en Textbox

14/03/2006 - 01:22 por Giovanni | Informe spam
Saludos compañeros!

Estoy desarrolando una pagina web con visual basic .NET. Mi pregunta es la
siguiente:

Es posible validar en un textbox el evento 'keypress' cuando en usuario
presiona ENTER ?

Gracias por su tiempo y respuesta.
Giovanni
 

Leer las respuestas

#1 Luis Miguel Blanco
14/03/2006 - 23:40 | Informe spam
Hola Giovanni

Para controlar esta situación debes escribir una función en Javascript que
se ejecute cuando ocurra el evento onkeypress en el TextBox; dentro del
código de dicha función compruebas si el código de tecla pulsado es 13
(correspondiente a ENTER) y en caso afirmativo, realizas las acciones de
validación que necesites.

La función Javascript deberás asociarla al evento onkeypress del control
Textbox, de manera que dicho control se "entere" de cuándo se ha producido el
evento y ejecute la función.

Para ello dispones de dos técnicas que te explico a continuación:

La primera y más simple pasa por añadir directamente en el HTML del WebForm,
dentro de la etiqueta <HEAD>, el código Javascript, por ejemplo:

'///////////////////////////////////
<HEAD>


<script language="javascript">
function ComprobarCajaTexto1()
{
if (event.keyCode == 13)
{
alert(document.Form1.TextBox1.value);
}
}
</script>
</HEAD>


<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
'///////////////////////////////////

A continuación pasamos al code-behind del WebForm, en el que supongamos que
tenemos un TextBox con el id TextBox1, y en el evento Load, establecemos la
asociación entre dicho control y la función Javascript anterior, para que se
ejecute al lanzarse el evento onkeypress del TextBox. Esto lo hacemos así:

'///////////////////////////////////
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.TextBox1.Attributes.Add("onkeypress", "ComprobarCajaTexto1()")
End Sub
'///////////////////////////////////

Ahora pasemos a la otra técnica que te decía, que consiste en no escribir
nada de código Javascript directamente en el HTML del WebForm, sino generarlo
desde el code-behind. Esto puede ser interesante en el caso de que necesites
generar código cliente para el navegador de forma dinámica, que cambie según
determinadas situaciones.

En primer lugar, añadimos un nuevo control al WebForm.

'///////////////////////////////////
<asp:TextBox id="TextBox2" runat="server"></asp:TextBox>
'///////////////////////////////////

Seguidamente pasamos al code-behind del formulario, y en el evento Load
generamos el código de una función JavaScript mediante un objeto
StringBuilder; después registramos(generamos) dicho código en la página
mediante el método Page.RegisterClientScriptBlock(), y asociamos este código
con el control de igual forma que para el anterior TextBox. Aquí tienes un
ejemplo de lo que te he comentado:

'///////////////////////////////////
Imports System.Text


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load


' generar desde code-behind el código Javascript
Dim sJS As StringBuilder = New StringBuilder
sJS.Append("<script language=""javascript"">" & ControlChars.CrLf)
sJS.Append("function ComprobarCajaTexto2()" & ControlChars.CrLf)
sJS.Append("{" & ControlChars.CrLf)
sJS.Append("if (event.keyCode == 13)" & ControlChars.CrLf)
sJS.Append("{" & ControlChars.CrLf)
sJS.Append("alert('Valor caja texto 2: ' + document.Form1.TextBox2.value);"
& ControlChars.CrLf)
sJS.Append("}" & ControlChars.CrLf)
sJS.Append("}" & ControlChars.CrLf)
sJS.Append("</script>")

' registrar en el WebForm el código Javascript anterior
Me.RegisterClientScriptBlock("CodJS", sJS.ToString())
' asociar el evento onkeypress del siguiente TextBox
' con el código Javascript generado desde este evento Load
Me.TextBox2.Attributes.Add("onkeypress", "ComprobarCajaTexto2()")
End Sub
'///////////////////////////////////

Es muy importante que importes el espacio de nombres System.Text, ya que
contiene la clase StringBuilder.

Bien, pues esto es todo, espero que alguna de estas propuestas te sirva para
lo que necesitas.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Giovanni" wrote:

Saludos compañeros!

Estoy desarrolando una pagina web con visual basic .NET. Mi pregunta es la
siguiente:

Es posible validar en un textbox el evento 'keypress' cuando en usuario
presiona ENTER ?

Gracias por su tiempo y respuesta.
Giovanni



Preguntas similares