Hoy veremos como validar un input de tipo text (aplica también para controles de asp.net) para que acepte sólo números enteros.
Lo primero que hay que hacer es agregar estas dos funciones que detallo a continuación:
Esta función permite validar un numero entero con una expresión regular y que utilizaremos para validar la entrada de datos (onkeypress):
function validarNum(e)
{
tecla = (document.all) ? e.keyCode : e.which;
if (tecla == 8) return true;
patron = /\d/;
te = String.fromCharCode(tecla);
return patron.test(te);
}
Esta función la utilizaremos en el evento "onchange" para validar los datos pegados (ctrl v) a nuestro textbox, este evento entrara cuando se pierda el foco del control y exista un cambio, y es ahí cuando validamos si lo introducido es un numero entero valido, si no lo es lo borramos.
function quitaNoNumero(obj)
{
patron = /\d/;
if (!patron.test(obj.value))
{
obj.value="";
}
}
Estas dos funciones de javascript pueden estar en la propia pagina o en un archivo .js, ya depende de ustedes, aquí les dejo el un ejemplo de como utilizarlas:
<html>
<head>
<script type="text/javascript">
function validarNum(e)
{
tecla = (document.all) ? e.keyCode : e.which;
if (tecla == 8) return true;
patron = /\d/;
te = String.fromCharCode(tecla);
return patron.test(te);
}
function quitaNoNumero(obj)
{
patron = /\d/;
if (!patron.test(obj.value))
{
obj.value="";
}
}
</script>
</head>
<body>
<input type="text" onkeypress = "return validarNum(event)" onchange="quitaNoNumero(this)" />
</body>
</html>
Los comentarios son bien recibidos... hasta la próxima.
-------------------------------------------------
Lo que se puede imaginar ... se puede programar
Ejemplos sobre lenguajes de programación como C#, VB.Net, Java(android), JavaScript, VB6, AJAX, SQLServer, Oracle...
Buscar este blog
jueves, 8 de diciembre de 2011
miércoles, 7 de diciembre de 2011
Manejo de teclado en web
Como lo vimos anteriormente en web también podemos tener el control de cachar las teclas pulsadas por el usuario, esto lo hacemos sobrescribiendo el evento keydown de document:
document.onkeydown = function(){
}
Por ejemplo, si queremos agregar funcionalidad de que al presionar F5 se realice cierta acción o que al presionar ESC se cancele o cierre cierta ventana o div flotante, etc. lo haremos mediante este evento.
El ejemplo que muestro a continuación, cancela todas las teclas F (F2 a F12):
Poner en el Head
document.onkeydown = function(){
Como pueden ver no se puede cancelar la tecla F1 (112) de la manera anterior, por que esta tecla es usada por el explorador para mostrar la ayuda (por lo menos en internet explorer)... pero si agregamos el siguiente evento en el body podemos cancelar esa tecla:
onhelp="return false;"
Así como sobrescribimos este evento podemos sobrescribir otros eventos para nuestros usos...
Espero que les sea de utilidad... no olviden comentar
------------------------------------------------
Lo que se puede imaginar...se puede programar
document.onkeydown = function(){
}
Por ejemplo, si queremos agregar funcionalidad de que al presionar F5 se realice cierta acción o que al presionar ESC se cancele o cierre cierta ventana o div flotante, etc. lo haremos mediante este evento.
El ejemplo que muestro a continuación, cancela todas las teclas F (F2 a F12):
Poner en el Head
document.onkeydown = function(){
if(window.event){
switch(window.event.keyCode)
{
case 112:
case 113:
case 114:
case 115:
case 116:
case 117:
case 118:
case 119:
case 120:
case 121:
case 122:
case 123:
case 219:
window.event.keyCode = 505;
break;
}
}
if(window.event && window.event.keyCode == 505){
return false;
}
}
onhelp="return false;"
Así como sobrescribimos este evento podemos sobrescribir otros eventos para nuestros usos...
Espero que les sea de utilidad... no olviden comentar
------------------------------------------------
Lo que se puede imaginar...se puede programar
Cancelar el F5 en una pagina web
Hoy veremos como cancelar la tecla F5 (refresh) para evitar que recarguen nuestra pagina. Esto lo haremos sobrescribiendo el evento keydown de document:
document.onkeydown = function(){
}
Y para saber cual tecla pulso lo aremos por medio de window.event.keyCode, para nuestro ejemplo agregamos una función que pone la hora y de esta manera vemos que realmente que no se esta refrescando nuestra pagina. De igual manera agrego un evento a un input para que vean que no se esta sobrescribiendo los eventos de los demás controles.
Ejemplo completo:
<html>
<head>
<script language="javascript">
document.onkeydown = function(){
if(window.event){
if(window.event.keyCode == 116)
{
return false;
}
}
}
function pon_hora(){
var dHora = new Date();
var res = String(dHora.getHours()) + ":" + String(dHora.getMinutes()) + ":" + String(dHora.getSeconds());
document.frm.txt.value = res;
return res;
}
function txtKey()
{
alert('No sobreescribe el evento keydown de los controles')
}
</script>
</head>
<body onload="pon_hora()">
<form name="frm">
<h1><b>ANULACIÓN DE LA TECLA TECLA F5</b><br></h1>
Hora actual: <input type="text" name="txt" onkeydown="return txtKey();"><br><br>
(Al seleccionar el botón "Actualizar" del navegador la hora debería actualizarse, pero con la tecla F5 no)
</form>
</body>
</html>
document.onkeydown = function(){
}
Y para saber cual tecla pulso lo aremos por medio de window.event.keyCode, para nuestro ejemplo agregamos una función que pone la hora y de esta manera vemos que realmente que no se esta refrescando nuestra pagina. De igual manera agrego un evento a un input para que vean que no se esta sobrescribiendo los eventos de los demás controles.
Ejemplo completo:
<html>
<head>
<script language="javascript">
document.onkeydown = function(){
if(window.event){
if(window.event.keyCode == 116)
{
return false;
}
}
}
function pon_hora(){
var dHora = new Date();
var res = String(dHora.getHours()) + ":" + String(dHora.getMinutes()) + ":" + String(dHora.getSeconds());
document.frm.txt.value = res;
return res;
}
function txtKey()
{
alert('No sobreescribe el evento keydown de los controles')
}
</script>
</head>
<body onload="pon_hora()">
<form name="frm">
<h1><b>ANULACIÓN DE LA TECLA TECLA F5</b><br></h1>
Hora actual: <input type="text" name="txt" onkeydown="return txtKey();"><br><br>
(Al seleccionar el botón "Actualizar" del navegador la hora debería actualizarse, pero con la tecla F5 no)
</form>
</body>
</html>
lunes, 5 de diciembre de 2011
Rellenar un valor con ceros a la izquierda en SQLServer
Como sabrán en SqlServer no existe ninguna función que te permita rellenar un valor numerico con ceros a la izquierda, bueno aunque no se si el la versión 2008 ya exista, hasta el momento sólo he manejado hasta la 2005.
Para completar una cifra con ceros a la izquierda utilizaremos un truco muy sencillo que he utilizado, esto se hace con la instrucción Right.
Ejemplo:
DECLARE @nMiCampo INT
SET @nMiCampo = 20
SELECT RIGHT('00000' + CONVERT(VARCHAR(10), @nMiCampo), 5)
Lo que hacemos con nuestro valor es concatenar una cadena de ceros a su derecha y después con la instrucción Right sólo tomamos nuestro tamaño de caracteres que queremos.
Ejemplo, si queremos mostrar un consecutivo de 6 dígitos, concatenamos 5 ceros, tomando en cuenta que siempre tendremos un dígito en nuestro valor y así con la instrucción Right tomaríamos los primero 6 dígitos de derecha a izquierda.
Buenos, espero que les sea de utilidad, hasta la próxima publicación.
---------------------------------------
Lo que se puede imaginar ... se puede programar
Formatear número a tipo moneda en SQLServer
Hoy veremos como formatear un valor numérico a tipo moneda (###,###.00), las siguientes instrucciones nos permitirá darle ese formato a nuestro dato.
Ejemplo 1:
SELECT CONVERT(VARCHAR(30), CONVERT(MONEY, 1250.86), 1)
Resultado:
1,250.86
Ejemplo 2:
SELECT CONVERT(VARCHAR(30), CONVERT(MONEY, 1250), 1)
Resultado:
1,250.00
Ejemplo 3: Si queremos que no aparezcan los dos decimales
SELECT LEFT(CONVERT(VARCHAR(30), CONVERT(MONEY, 1250), 1), LEN(CONVERT(VARCHAR(30), CONVERT(MONEY, 1250), 1))-3)
Resultado:
1,250
Bueno esto fue algo rápido y sencillo que no necesita mas explicación, espero que les sirva.
-------------------------------------------------------------------------------------------
Lo que se puede imaginar ... se puede programar
Ejemplo 1:
SELECT CONVERT(VARCHAR(30), CONVERT(MONEY, 1250.86), 1)
Resultado:
1,250.86
Ejemplo 2:
SELECT CONVERT(VARCHAR(30), CONVERT(MONEY, 1250), 1)
Resultado:
1,250.00
Ejemplo 3: Si queremos que no aparezcan los dos decimales
SELECT LEFT(CONVERT(VARCHAR(30), CONVERT(MONEY, 1250), 1), LEN(CONVERT(VARCHAR(30), CONVERT(MONEY, 1250), 1))-3)
Resultado:
1,250
Bueno esto fue algo rápido y sencillo que no necesita mas explicación, espero que les sirva.
-------------------------------------------------------------------------------------------
Lo que se puede imaginar ... se puede programar
domingo, 4 de diciembre de 2011
Enviar un correo electrónico en .Net
Les dejo el siguiente código para enviar un correo electrónico:
Clase Smtp:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net;
namespace ServerSmtp
{
public class Smtp
{
#region Variables
String _To;
String _From;
String _ServerSMTP;
String _Password;
String _Body;
String _subject;
bool _isBodyHtml;
int _puerto;
#endregion
#region Propiedades
public String To
{
set { _To = value; }
}
public String From
{
set { _From = value; }
}
public String SMTP
{
set { _ServerSMTP = value; }
}
public String Password
{
set { _Password = value; }
}
public String Body
{
set { _Body = value; }
}
public String Subject
{
set { _subject = value; }
}
public bool isBodyHtml
{
set { _isBodyHtml = value; }
}
public int Puerto
{
set { _puerto = value; }
}
#endregion
public void Send()
{
SmtpClient clienteSmtp = new SmtpClient(this._ServerSMTP, this._puerto);
clienteSmtp.UseDefaultCredentials = false;
clienteSmtp.EnableSsl = true;
if (this._Password.Trim() != "")
clienteSmtp.Credentials = new NetworkCredential(this._From, this._Password);
try
{
MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress(this._To));
msg.From = new MailAddress(this._From);
msg.Subject = this._subject;
msg.IsBodyHtml = true;
msg.Body = this._Body;
clienteSmtp.Send(msg);
}
catch (SmtpException ex)
{
throw new Exception(ex.Message);
}
catch (Exception e)
{
throw e;
}
}
}
}
Como utilizar la clase:
Smtp email = new Smtp();
email.From = "prueba@gmail.com";
email.Password = "password";
email.SMTP = "smtp.gmail.com";
email.Puerto = 587;
email.To = para@gmail.com;
email.isBodyHtml = true;
email.Subject = "Subject";
email.Body = "<div style='font-family:Arial, Helvetica, sans-serif;font-size:11px;'>Prueba</div>";
email.Send();
-------------------------------------------------
Lo que se puede imaginar .. se puede programar
Clase Smtp:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net;
namespace ServerSmtp
{
public class Smtp
{
#region Variables
String _To;
String _From;
String _ServerSMTP;
String _Password;
String _Body;
String _subject;
bool _isBodyHtml;
int _puerto;
#endregion
#region Propiedades
public String To
{
set { _To = value; }
}
public String From
{
set { _From = value; }
}
public String SMTP
{
set { _ServerSMTP = value; }
}
public String Password
{
set { _Password = value; }
}
public String Body
{
set { _Body = value; }
}
public String Subject
{
set { _subject = value; }
}
public bool isBodyHtml
{
set { _isBodyHtml = value; }
}
public int Puerto
{
set { _puerto = value; }
}
#endregion
public void Send()
{
SmtpClient clienteSmtp = new SmtpClient(this._ServerSMTP, this._puerto);
clienteSmtp.UseDefaultCredentials = false;
clienteSmtp.EnableSsl = true;
if (this._Password.Trim() != "")
clienteSmtp.Credentials = new NetworkCredential(this._From, this._Password);
try
{
MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress(this._To));
msg.From = new MailAddress(this._From);
msg.Subject = this._subject;
msg.IsBodyHtml = true;
msg.Body = this._Body;
clienteSmtp.Send(msg);
}
catch (SmtpException ex)
{
throw new Exception(ex.Message);
}
catch (Exception e)
{
throw e;
}
}
}
}
Como utilizar la clase:
Smtp email = new Smtp();
email.From = "prueba@gmail.com";
email.Password = "password";
email.SMTP = "smtp.gmail.com";
email.Puerto = 587;
email.To = para@gmail.com;
email.isBodyHtml = true;
email.Subject = "Subject";
email.Body = "<div style='font-family:Arial, Helvetica, sans-serif;font-size:11px;'>Prueba</div>";
email.Send();
-------------------------------------------------
Lo que se puede imaginar .. se puede programar
jueves, 1 de diciembre de 2011
Crear una pagina base en .Net
Hoy veremos lo sencillo que es crear una pagina base en .Net y la utilidad que tiene.
¿Que es una pagina base?
Es una clase responsable de definir las propiedades comunes, definir los valores por defecto, lógica de renderización básica.
Por ejemplo, puede ser utilizada para validar si la sesión del usuario sigue activa y si no es así sacarlo de la pagina actual. Hay mil funcionalidades que tus paginas pueden tener en común, y esto te ayudara a que el código quede centralizado y reutilizado por cada pagina que herede de la pagina base.
Ahora si, sabiendo para que nos sirve una pagina base vamos al ejemplo.
Ejemplo en C#
Clase Base: Nuestra clase base hereda de Page como lo hacen todas la paginas.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Ejemplo.Base
{
public class PageBase : System.Web.UI.Page
{
//Aquí sobre escribimos los eventos de una pagina, de igual manera podemos agregar métodos y propiedades
protected override void OnLoad(EventArgs e)
{
// Logica comun al cargar la pagina
// Ejecuta el load de la pagina que utiliza la pagina base
base.OnLoad(e);
}
// De igual manera podemos sobreescribir otros eventos
protected override void OnLoadComplete(EventArgs e)
{
base.OnLoadComplete(e);
}
}
}
Aplicando nuestra pagina base:
using System;
using System.Collections.Generic;
using System.Data;
using System.Web;
using System.Linq;
using System.Text;
namespace Ejemplo
{
public partial class CarritoDetalle : PageBase //-> Antes System.Web.UI.Page, se remplaza por nuestra clase
{
protected void Page_Load(object sender, EventArgs e)
{
//La código del load se esta ejecutando después del load de la pagina base
}
}
}
-----------------------------------------------------
Lo que se puede imaginar ... se puede programar
IsDate() en C#
C# no cuenta con una función IsDate como Visual Basic, pero la podemos emular de la siguiente manera:
private void Form1_Load(object sender, EventArgs e)
{
if (IsDate("01/12/2011"))
{
MessageBox.Show("Es fecha valida");
}
}
private bool IsDate(string fecha)
{
DateTime dt;
return DateTime.TryParse(fecha, out dt);
}
------------------------------------------
Lo que se puede imaginar... se puede programar
IsNumeric en C#
La función isNumeric en C# no existe, pero podemos utilizar el tryparse para emular esta función de Visual Basic.
Aquí les dejo un ejemplo de como utilizarla:
Aquí les dejo un ejemplo de como utilizarla:
private static bool IsNumeric(string value)
{
int number;
return Int32.TryParse(value, out number);
}
--------------------------------------------------------
Lo que se puede imaginar... se puede programar
Suscribirse a:
Entradas (Atom)