Ver Mensaje Individual
  #63 (permalink)  
Antiguo 21/04/2005, 12:47
Avatar de HenrydeSousa
HenrydeSousa
 
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 19 años, 7 meses
Puntos: 2
Tema: Tips and Tricks

Pregunta: ¿Cómo hacer que un textbox permita sólo números?

Respuesta:

Crear una clase de forma que tengamos nuestro propio control que sólo permite números, como se muestra en el código abajo.
Escribimos la función javascript para permitir sólo números en el cliente mediante la clase stringbuilder. Esto lo hacemos
en el método Render del TextBox, donde también llamamos a dicha función en el onkeypress del TextBox.
Nota: funciona solamente con IE.

En VB.Net
Cita:
Public Class TextBoxNumerico
Inherits System.Web.UI.WebControls.TextBox

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
Dim Script As New System.Text.StringBuilder
Script.Append(vbCrLf & "<script language=" & Chr(34) & "javascript" & Chr(34) & ">" & vbCrLf)
Script.Append("function solonumeros(){" & vbCrLf)
Script.Append("var tecla = window.event.keyCode;" & vbCrLf)
Script.Append("if (tecla < 48 || tecla > 57){" & vbCrLf)
Script.Append("window.event.keyCode=0;}}" & vbCrLf)
Script.Append("</script>")
Page.RegisterStartupScript("SoloNumero", Script.ToString)

Attributes.Add("onkeypress", "solonumeros();")
MyBase.Render(writer)
End Sub

End Class
Versión para IE, Netscape y Firefox:

En VB.Net
Cita:
Public Class TextBoxNumerico
Inherits System.Web.UI.WebControls.TextBox

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
Dim Script As New System.Text.StringBuilder
Script.Append(vbCrLf & "<script language=" & Chr(34) & "javascript" & Chr(34) & ">" & vbCrLf)
Script.Append("function solonumeros(e){" & vbCrLf)
Script.Append("key = (document.all) ? e.keyCode : e.which;" & vbCrLf)
Script.Append("if (key==8) return true;" & vbCrLf)
Script.Append("patron =/\d/;" & vbCrLf)
Script.Append("te = String.fromCharCode(key);" & vbCrLf)
Script.Append("return patron.test(te);}")
Script.Append("</script>")
Page.RegisterStartupScript("SoloNumero", Script.ToString)

Attributes.Add("onkeypress", "return solonumeros(event);")
MyBase.Render(writer)
End Sub

End Class
Nota: Los créditos de esta función javascript son de JavierB del foro Javascript

Última edición por HenrydeSousa; 25/04/2005 a las 13:51