Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2009, 02:08
Koden
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 8 meses
Puntos: 1
Radio buttons que controlen caracteres de textarea

Saludos a todos.

Estoy intentando hacer un script en el que seleccionando un radio me deje escribir un número de caracteres determinado, en función del radio que se pulse.

Estuve mirando y encontré rápidamente el textarea que sólo deje introducir un número de caracteres, pero al intentarlo hacer desde controlado desde un radio button, me falla, aunque mi nivel de javascript es bastante malo y seguramente estoy haciendo algo mal.

Este es mi código.

Código javascript:
Ver original
  1. <script type="text/javascript">
  2.     function habilita (val)
  3.     {
  4.         document.forms[0].element_3.disabled = false;
  5.         num_caracteres_permitidos = val
  6.     }
  7.  
  8.     if (document.forms[0].element_3.disabled = false)
  9.     {
  10.         contenido_textarea = ""
  11.  
  12.         function valida_longitud ()
  13.         {
  14.             num_caracteres = document.forms[0].element_3.value.length
  15.  
  16.             if (num_caracteres > num_caracteres_permitidos){
  17.                 document.forms[0].element_3.value = contenido_textarea
  18.             }else{
  19.                 contenido_textarea = document.forms[0].element_3.value
  20.             }
  21.  
  22.             if (num_caracteres >= num_caracteres_permitidos){
  23.                 document.forms[0].element_3_2.style.color="#ff0000";
  24.             }else{
  25.                 document.forms[0].element_3_2.style.color="#000000";
  26.             }
  27.  
  28.             cuenta ()
  29.         }
  30.         function cuenta (){
  31.             document.forms[0].caracteres.value=document.forms[0].texto.value.length
  32.         }
  33.     }
  34. </script>

y el HTML

Código HTML:
Ver original
  1. <li id="li_8" >
  2.     <label class="description" for="element_8">Seleccione tipo de anuncio:</label>
  3.     <span>
  4.         <input id="element_8_1" name="element_8_1" class="element radio" type="radio" value="1" onclick="habilita(150)" />
  5.         <label class="choice" for="element_8_1">1/3 Página  :: 60 €</label>
  6.         <input id="element_8_2" name="element_8_2" class="element radio" type="radio" value="2" onclick="habilita(300)" />
  7.         <label class="choice" for="element_8_2">1/2 Página :: 90 €</label>
  8.         <input id="element_8_3" name="element_8_3" class="element radio" type="radio" value="3" onclick="habilita(300)" />
  9.         <label class="choice" for="element_8_3">1 Página :::: 180 €</label>
  10.     </span>
  11.     <p class="guidelines" id="guide_8"><small>Seleccione uno de los tres tipos de anuncio. En caso de querer otro formato o una campaña semestral o anual póngase en contacto con nosotros en el correo <a href="mailto:[email protected]">[email protected]</a></small></p>
  12. </li>
  13. <li id="li_3" >
  14.     <label class="description" for="element_3">Texto del anuncio</label>
  15.     <div><textarea id="element_3" name="element_3" class="element textarea small" onkeydown="valida_longitud()" onkeyup="valida_longitud()" disabled="disabled"></textarea></div>
  16.     <div>
  17.         <input id="element_3_2" name="element_3_2" class="element text" value="" type="text">
  18.         <label for="element_3_2">Caracteres</label>
  19.     </div>
  20.     <p class="guidelines" id="guide_3"><small>Escriba el texto del anuncio en castellano. Nosotros nos encargamos de traducirlo al inglés.</small></p>
  21. </li>

Básicamente lo que quiero es que al pinchar sobre un radio, se habilite el textarea y le de a la variable num_caracteres_permitidos un valor para permitir introducir caracteres.

Gracias a todos por las aportaciones y un saludo.