Retroceder   Foros del Web > Programación para sitios web > .NET > web forms

Respuesta
 
Herramientas Desplegado
Antiguo 01-jun-2006, 11:41   #1 (permalink)
pineda está en el buen camino
 
Fecha de Ingreso: septiembre-2005
Mensajes: 72
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
pineda está desconectado   Responder Citando
Antiguo 01-jun-2006, 16:41   #2 (permalink)
pineda está en el buen camino
 
Fecha de Ingreso: septiembre-2005
Mensajes: 72
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
pineda está desconectado   Responder Citando
Antiguo 01-jun-2006, 19:00   #3 (permalink)
xknown está en el buen camino
 
Avatar de xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.249
Me temo que eso sólo funcionará en IE.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
xknown está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 14:13.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93