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

Bueno, tras diversas pruebas he podido darme cuenta que había cosas (y sigue habiendo, porque sigue sin funcionar, vaya) que no estaban bien.

En fin, sea como sea, el código que tengo ahora mismo es así:

Código JavaScript:
Ver original
  1. <script type="text/javascript">
  2.     function valida_longitud ()
  3.     {
  4.         num_caracteres = getElementById("element_3_1").value.length
  5.         num_caracteres_permitidos = getElementById("element_8").value
  6.  
  7.         if (num_caracteres_permitidos == 1)
  8.             num_caracteres_permitidos = 150
  9.         else
  10.             num_caracteres_permitidos = 300
  11.  
  12.         if (num_caracteres > num_caracteres_permitidos){
  13.             getElementById("element_3_1").value = contenido_textarea
  14.         }else{
  15.             contenido_textarea = getElementById("element_3_1").value
  16.         }
  17.  
  18.         if (num_caracteres >= num_caracteres_permitidos){
  19.             getElementById("element_3_2").style.color="#ff0000";
  20.         }else{
  21.             getElementById("element_3_2").style.color="#000000";
  22.         }
  23.  
  24.         cuenta ()
  25.     }
  26.  
  27.     function cuenta (){
  28.         document.getElementById("element_3_2").value=document.getElementById("element_3_1").value.length
  29.     }
  30. </script>

El HTML, por su parte, lo tengo así:

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" name="element_8" class="element radio" type="radio" value="1" onclick="getElementById('element_3_1').disabled = !this.checked" />
  5.         <label class="choice" for="element_8_1">1/3 Página  :: 60 €</label>
  6.         <input id="element_8" name="element_8" class="element radio" type="radio" value="2" onclick="getElementById('element_3_1').disabled = !this.checked" />
  7.         <label class="choice" for="element_8_2">1/2 Página :: 90 €</label>
  8.         <input id="element_8" name="element_8" class="element radio" type="radio" value="3" onclick="getElementById('element_3_1').disabled = !this.checked" />
  9.         <label class="choice" for="element_8_3">1 Página :::: 180 €</label>
  10.     </span>
  11. </li>
  12. <li id="li_3" >
  13.     <label class="description" for="element_3_1">Texto del anuncio</label>
  14.     <div><textarea id="element_3_1" name="element_3_1" class="element textarea small" onkeydown="valida_longitud()" onkeyup="valida_longitud()"></textarea></div>
  15.     <div>
  16.         <input id="element_3_2" name="element_3_2" class="element text" value="" type="text">
  17.         <label for="element_3_2">Caracteres</label>
  18.     </div>
  19. </li>

Básicamente el textarea es element_3_1, el input element_3_2 debería mostrarme el número de caracteres restantes y element_8 es el radio button seleccionado.

El caso es que ni me desactiva el textarea hasta que selecciono un radio button, ni me indica el número máximo de caracteres...

¿Alguien sabría decirme que es lo que estoy haciendo mal? ¿Será que no lo estoy enfocando bien y habría maneras más fáciles?

Muchas gracias a todos por descontado y un saludo.