Foros del Web » Programando para Internet » ASPX (.net) »

Pegar sólo el número de caracteres deseado

Estas en el tema de Pegar sólo el número de caracteres deseado en el foro de ASPX (.net) en Foros del Web. Espero me puedan ayudar con lo siguiente: Ya he validado un textbox, para que sólo acepte el número de caracteres que aparecen en su propiedad ...
  #1 (permalink)  
Antiguo 01/06/2006, 11:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 73
Antigüedad: 18 años, 7 meses
Puntos: 0
Pegar sólo el número de caracteres deseado

Espero me puedan ayudar con lo siguiente:

Ya he validado un textbox, para que sólo acepte el número de caracteres que aparecen en su propiedad maxlenght, cuando la propiedad multiline está en true.

La cosa es que si se copia y pega un texto de mayor longitud al darle el submit da error por los caracteres de más.

Quisiera saber si hay alguna forma de validar el número de caracteres que se copian en el textbox y si se puede recortar el texto a sólo los caracteres que uno decida.

En caso contrario supongo que tendré que hacer una validación del campo cuando pierda el foco o algo así.

En fin. Cualquier sugerencia es buena.

Gracias de antemano!!
__________________
Henry :-D
  #2 (permalink)  
Antiguo 01/06/2006, 16:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 73
Antigüedad: 18 años, 7 meses
Puntos: 0
De acuerdo Ya estuvo... creo

Ok, pues después de un poco de ver por ahi algunos sitios y pelearme un poco con el visual .

Aqui les dejó como lo implementé:

Función javascript:
NombreControl=nombre que le dimos a nuestro control.
maximo=número máximo de caracteres que queremos tenga el textbox, yo lo tomé con la propiedad maxlenght

Código:
 function fnPaste(NombreControl, maximo)
{
	var exp=window.clipboardData.getData("Text");  // Lo que hay en el portapapeles
	var exp2 = document.getElementById (NombreControl).innerText;            // Lo que hay en el textbox
	var cont=exp.length;
	var cont2=exp2.length;
	if(cont2!=0)  // Si el textbox no está vacío
	{
		var total=cont+cont2;
		if(total>maximo)  // Si lo que queremos copiar es mayor de la propiedad maxlenght
		{
			total=maximo-cont2;
			exp2=exp2 + exp.substr(0, total);
			event.returnValue = false;
			document.getElementById(NombreControl).innerText=exp2;
		}
	}
	else // Si el textbox está vacío
	{
		if(cont>maximo) // Si es mayor a la propiedad maxlenght
		{
			exp=exp.substr(0, maximo);         
			event.returnValue = false;
			document.getElementById(NombreControl).innerText=exp;
		}
	}
}
ya dentro del visual hay que agregar la función a los atributos:
Código:
this.txtDescripcion.Attributes.Add("onpaste", "fnPaste('txtDescripcion', "+ txtDescripcion.MaxLength+");");
pues bueno eso es lo que hice, todavía no está muy bien detallado pero si alguien tiene algún otro aporte es bienvenido.

Aquí les dejo el link por si quieren hacer alguna otra cosa:
http://msdn.microsoft.com/library/de...ts/onpaste.asp
__________________
Henry :-D
  #3 (permalink)  
Antiguo 01/06/2006, 19:00
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Me temo que eso sólo funcionará en IE.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
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 20:39.