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

Textbox y sus propiedades multiline y maxlength

Estas en el tema de Textbox y sus propiedades multiline y maxlength en el foro de ASPX (.net) en Foros del Web. Hola a todos!!! Tengo un problema con los textbox y sus propiedades maxlength y multiline. He buscado información al respecto y sé que estas propiedades ...
  #1 (permalink)  
Antiguo 16/02/2006, 09:13
 
Fecha de Ingreso: febrero-2006
Mensajes: 15
Antigüedad: 18 años, 2 meses
Puntos: 0
Textbox y sus propiedades multiline y maxlength

Hola a todos!!!
Tengo un problema con los textbox y sus propiedades maxlength y multiline. He buscado información al respecto y sé que estas propiedades juntas no funcionan. He leido que lo mejor es utilizar un control Textarea de Html y hacer una función javascript para controlar la cantidad de caracteres. He probado varias funciones que he encontrado pero no me funciona ninguna. Específicamente quiero que a medida que se va escribiendo en el textarea se vaya mostrando en una etiqueta la cantidad de caracteres que quedan por escribir (la cantidad máxima de caracteres - lo que escribí hasta el momento) y cuando esa resta sea 0 no dejar escribir más.Lo otro es que no sé como accedo al texto que escribí, para luego pasarlo como parámetro a un procedimiento almacenado de SQL. En mi página tengo varios controles, y como no son HTML, los paso como parámetro perfectamente en el click del botón, pero no sé como hacer esto con el textarea (no encuentro una propiedad text, como la tiene un textbox) .Programo en C#.
Si alguien me puede ayudar con un ejemplo de una función javascript que haga lo que necesito o me pueda decir cómo acceder a lo que escribí en el textarea, lo agradecería mucho.
Gracias a todos por la ayuda.
chao
  #2 (permalink)  
Antiguo 16/02/2006, 14:59
 
Fecha de Ingreso: febrero-2006
Mensajes: 47
Antigüedad: 18 años, 2 meses
Puntos: 0
Hola Yo125, este código pincha de lo más bien para limitar un texarea. Ajusta el script a tu .aspx.


<html>

<body>
<textarea onkeydown="if(this.value.length >= 10){ alert('Has superado el tamaño máximo permitido'); return false; }; cant.value = cant.value -1 ">
</textarea>

<input type="text" name="cant" size="3" value="10">

</body>

</html>


Estoy trabajando en como pasar los valores a un control asp.NET a través del evento onsubmit pero tengo que probarlo, más tarde te digo que pude hacer.
  #3 (permalink)  
Antiguo 17/02/2006, 10:03
 
Fecha de Ingreso: febrero-2006
Mensajes: 15
Antigüedad: 18 años, 2 meses
Puntos: 0
Muchas gracias johnp, ahora mismo voy a probar tu código. Cuando sepas la segunda parte de mi duda me dices.
Gracias otra vez.
  #4 (permalink)  
Antiguo 17/02/2006, 16:55
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Iniciado por johnp
Estoy trabajando en como pasar los valores a un control asp.NET a través del evento onsubmit pero tengo que probarlo, más tarde te digo que pude hacer.
Que tal johnp, me llama la atencion de porque quieres pasar los valores a traves del onsubmit... si todo lo puedes controlar con tus eventos el server-side y por default pasan por post..

Tan sencillo como hacer ésto:

Cita:
<textarea runat=server onkeydown="if(this.value.length >= 10){ alert('Has superado el tamaño máximo permitido'); return false; }; cant.value = cant.value -1 ">
</textarea>
Ahora bien, puedes crear un Web Control de tipo multiline directamente para que no tengas la necesidad de ocupar un html control con comportamiento server-side:;

ejemplo:

Cita:
<asp:TextBox id="TextBox1" runat="server" TextMode="MultiLine"></asp:TextBox>
y en el codebehind asociarle el evento a través de una funcion para hacerlo mas limpio...

quedando de ésta forma:

Código:
<html>
<head>
<script language=JavaScript>
function checkSize (obj) 
{
if(obj.value.length >= 10)
{
alert('Has superado el tamaño máximo permitido'); 
return false;
}; 
cant.value = cant.value -1;
}
</script>
</head>
<body>
...
...
<asp:TextBox id="TextBox1" runat="server" TextMode="MultiLine"></asp:TextBox>
</body>
</html>
codebehind:

Código:
private void Page_Load(object sender, System.EventArgs e)
		{
			if (!this.IsPostBack) {			
			TextBox1.Attributes.Add("onkeydown","checkSize(this)");
			}
		}
Espero haberme dado a entender.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 20/02/2006, 13:19
 
Fecha de Ingreso: febrero-2006
Mensajes: 15
Antigüedad: 18 años, 2 meses
Puntos: 0
Textbos y sus propiedades multiline y maxlength

Hola!!
Muchas gracias a los dos por sus respuestas. Al final utilizando un textbox y haciendo la llamada como me dijo Rootk resolví. El código de javascript no me funcionó bien (lo de contar los caracteres), me dice que la variable cant no está definida (a pesar que la tengo más abajo de esta manera:

<input type="text" name="cant" size="3" value="10">

tal y como me dijo johnp), pero la otra parte sí. Aquí voy a poner el código que sí me sirvió, por si alguien más lo necesita.
<HTML>
...
<BODY >
...

<SCRIPT language="JavaScript" type="text/JavaScript">
function cambiar_num_caract(caracteres)
{
document.getElementById('caract1').innerHTML = caracteres;
caract_tserv=caracteres;
}

function count_caract(obj)
{
cant = obj.value.length;
rest = caract_tserv - cant;
document.getElementById('caract1').innerHTML = rest;
if(rest < 0)
{
obj.value = obj.value.substr(0, caract_tserv);
document.getElementById('caract1').innerHTML = 0;
}
}

</SCRIPT>
<form >
...
<P> Caracteres: <strong><span id="caract1">&nbsp;</span></strong> <input type="hidden" size="3" name="ok"></P>
<asp:textbox id="txtDescripcion" runat="server" Width="341px" Height="77px" TextMode="MultiLine"></asp:textbox>

...
</form>

<SCRIPT language="JavaScript" type="text/JavaScript">
// Actualizar desde un inicio el numero de caract max
cambiar_num_caract(200)
</SCRIPT>
</BODY>
</HTML>

Y en el load de la página como me dice Rootk:

private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
txtDescripcion.Attributes.Add("onkeydown","count_c aract(this)");
}
}

Lo que me sucede ahora es que cuando escribo el primer caracter en el textbox no hace nada, y a partir del segundo sí empieza con la resta de caracteres, todo normal, es decir, el primer caracter lo ignora. No obstante me siento feliz con la solución que tengo hasta ahora.

Gracias a todos por su colaboración.
chao
  #6 (permalink)  
Antiguo 20/02/2006, 18:28
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Iniciado por Yo125
Lo que me sucede ahora es que cuando escribo el primer caracter en el textbox no hace nada, y a partir del segundo sí empieza con la resta de caracteres,
En esos casos es mejor que les asocies los siguientes eventos para que no haya falla... quedaría así:

Cita:
if(!this.IsPostBack)
{
txtDescripcion.Attributes.Add("onKeyDown","count_c aract(this)");
txtDescripcion.Attributes.Add("onKeyUp","count_c aract(this)");
}
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 24/02/2006, 07:44
 
Fecha de Ingreso: febrero-2006
Mensajes: 15
Antigüedad: 18 años, 2 meses
Puntos: 0
Ahora si me funcionó super OK.
Gracias!!! Decididamente este foro es lo máximo!!!!
  #8 (permalink)  
Antiguo 23/07/2007, 10:34
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 16 años, 10 meses
Puntos: 0
Pregunta Re: Textbox y sus propiedades multiline y maxlength

saludos a todos, estaba navegando busando un javascript que hiciera exactament lo que hace el posteado aqui, que vaya decrementando los caracteres en un textbox y resultaria perfecto de no ser que me presenta una pequeña falla, cuando hago algun postback se desarapece el valor es decir yo tengo algo como esto:

Detalle: Restan: 100
Aqui abajo va del textDetalle

cuando escojo algun combo que tenga habilitado en postback o cuando presiono un boton al final del formulario que dice enviar se deparece el numero de caracteres y queda de esta manera:


Detalle: Restan:
Aqui abajo va del textDetalle

porq pasa eso con todo aqui dejo el codigo que utilice, muchas gracias a quien se sirva ayudarme.

Codigo VB
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Dim lector As SqlDataReader

If Not IsPostBack Then

txt_titulo.Attributes.Add("onKeyDown", "count_caract(this)")
txt_titulo.Attributes.Add("onKeyUp", "count_caract(this)")
end if
End Sub

Codigo HTML


<div class="formas">
<label>Detalle:<span id="contador">Restan:&nbsp;<span id="caract1">&nbsp;</span></span></label>
<asp:TextBox ID="textDetalle " runat="server" ></asp:TextBox>
</div>


y el javascript que copie de aqui:

<asp:Content ID="Content1" ContentPlaceHolderID="principal" Runat="Server">
<script src="jscripts/descripcion.js" language="javascript" type="text/javascript"> </script>
<script language="JavaScript" type="text/JavaScript">
function cambiar_num_caract(caracteres)
{
document.getElementById('caract1').innerHTML = caracteres;
caract_tserv=caracteres;
}

function count_caract(obj)
{
cant = obj.value.length;
rest = caract_tserv - cant;
document.getElementById('caract1').innerHTML = rest;
if(rest < 0)
{
obj.value = obj.value.substr(0, caract_tserv);
document.getElementById('caract1').innerHTML = 0;
}
}
</script>


<asp:ScriptManager ID="anuncios" runat="server">
</asp:ScriptManager>


</ContentTemplate>
</asp:UpdatePanel>

<script language="JavaScript" type="text/JavaScript">
// Actualizar desde un inicio el numero de caract max
cambiar_num_caract(60)
</script>

</asp:Content>

gracias de nuevo ojala alguien me ayude a resolver este problema.
  #9 (permalink)  
Antiguo 24/01/2008, 15:16
Avatar de poloche  
Fecha de Ingreso: abril-2006
Ubicación: cochabamba
Mensajes: 93
Antigüedad: 18 años
Puntos: 1
Re: Textbox y sus propiedades multiline y maxlength

ja ja cada ves se huevean mas no es asi
  #10 (permalink)  
Antiguo 25/01/2008, 04:12
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: Textbox y sus propiedades multiline y maxlength

Hola Rodro, pon runat="server" en el label donde aparecen los caracteres que faltan a ver si asi te ayuda a guardar su valor.

Saludos
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 19:02.