Foros del Web » Programando para Internet » Jquery »

mejorar a funcion generica-reusable

Estas en el tema de mejorar a funcion generica-reusable en el foro de Jquery en Foros del Web. hola, tengo esta funcion, que me ayuda a delimitar la introduccion de texto a un textarea: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original //entre el ...
  #1 (permalink)  
Antiguo 21/05/2013, 19:07
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
mejorar a funcion generica-reusable

hola,

tengo esta funcion, que me ayuda a delimitar la introduccion de texto a un textarea:

Código Javascript:
Ver original
  1. //entre el document ready
  2. $('#numero').html('240');
  3. $('#motivo,#observaciones,#descripcion_area').keyup(function() {
  4.     var total_letras = 200;
  5.     var longitud = $(this).val().length;
  6.     var resto = total_letras-longitud;
  7.     $('#numero').html(resto);
  8.     if(resto<=0){
  9.                    var str= $('#motivo,#observaciones,#descripcion_area').val();
  10.         str = str.substr(0,total_letras);
  11.         $('#motivo,#observaciones,#descripcion_area').val(str);
  12.         $('#numero').html('0');
  13.     }
  14. });

Funciona bien cuando en un formulario solo tengo un textarea, por el ejemplo:

formulario1.php => contiene solo el texarea id=motivo

en el html:

Código HTML:
Ver original
  1. <textarea name="motivo" id="motivo" rows="4" cols="45"></textarea><div>Letras Restantes: <span id="numero">

pero si yo quisiera:

formulario1.php => texarea id=motivo y texarea id=observaciones

en el html:

Código HTML:
Ver original
  1. <textarea name="motivo" id="motivo" rows="4" cols="45"></textarea><div>Letras Restantes: <span id="numero">
  2. <textarea name="observaciones" id="observaciones" rows="4" cols="45"></textarea><div>Letras Restantes: <span id="numero">

la funcion solo trabaja en textarea id=motivo

como la podria adaptar para que me tome en cuenta los 2 o mas textareas en el mismo script.

obviamente hay que diferenciar de alguna manera span el id=numero

gracias
  #2 (permalink)  
Antiguo 21/05/2013, 21:56
(Desactivado)
 
Fecha de Ingreso: abril-2013
Ubicación: rosario
Mensajes: 248
Antigüedad: 11 años
Puntos: 17
Respuesta: mejorar a funcion generica-reusable

Yo lo haría de esta manera
Código:
entre el document ready
$('#numero').html('240');
$('textarea,#descripcion_area').keyup(function() {
    var total_letras = 200;
    var longitud = $(this).val().length;
    var resto = total_letras-longitud;
    $('#numero').html(resto);
    if(resto<=0){
                   var str= $(this).val();
        str = str.substr(0,total_letras);

        $(this).val(str);
        $('#numero').html('0');
    }
});
  #3 (permalink)  
Antiguo 22/05/2013, 07:19
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: mejorar a funcion generica-reusable

hola diurno10, gracias por tu tiempo

oye mira no entiedo muy bien las adaptaciones:

aqui porque pones textarea en lugar de todos los identificadores? no entiendo la idea

Cita:
$('textarea,#descripcion_area').keyup(function() {
y falta considerar que para mostrar cuantos caracteres restan cada span deberia tener un identificador distinto pero en la funcion solo lo manejo con un selector

$('#numero')

no se si se podria hacer algo como:

this span y seleccionarlo por una clase o algo asi

para que a cada textarea le indique con su respectivo span cuantos caracteres le restan
  #4 (permalink)  
Antiguo 22/05/2013, 07:44
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: mejorar a funcion generica-reusable

ya me muestra en cada textarea letras restantes, solo que el segundo textarea va restando y tomando el valor de restante del primer textarea

Código Javascript:
Ver original
  1. $('.numero').html('200');
  2. $('#motivo,#observaciones,#descripcion_area').keyup(function(){
  3.     var total_letras = 200;
  4.     var longitud = $(this).val().length;
  5.     var resto = total_letras-longitud;
  6.     $('.numero',this).html(resto);
  7.     if(resto<=0){
  8.         var str= $(this).val();
  9.         str = str.substr(0,total_letras);
  10.         $(this).val(str);
  11.         $('.numero').html('0');
  12.     }
  13. });

cambie los span, en lugar de id les puse clase, pero aun no logro diferenciarlos,
trate de poner:

Código HTML:
Ver original
  1. <textarea name="descripcion_area" id="descripcion_area" rows="4" cols="45"></textarea><div>Letras Restantes: <span class="numero"></span></div>
  2. <textarea name="motivo" id="motivo" rows="4" cols="45"></textarea><div>Letras Restantes: <span class="numero"></span></div>

$('.numero',this).html('200');

y hay no calcula los caracteres restantes

Etiquetas: funcion, mejorar
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 12:32.