Todos los temas de: Javascript

February 15th, 2008

Cómo obtener y asignar el valor de un RadioButton en Javascript. De forma sencilla.

Bien, con este tip pretendo compartir una función sencilla para hace un get y otra para un set, de un grupo de RadioButtons en XHTML + JavaScript. Recordemos que en Javascript no hay una función para obtener o asignar el valor de un grupo de RadioButtons y muchos lo hacen a "mano". Con estas funciones he automatizado eso, y al menos a mí me han servido mucho para las validaciones o asignaciones en JS. Para que estas funciones trabajen de forma adecuada, se requiere que se definan los radiobuttons, bajo el siguiente estándar:

El atributo id de los elementos debe ser: name + "_" + N, donde N es un índice para cada uno de los elementos. N inicia en cero.

De tal forma que si tengo un grupo de 3 RadioButtons con el nombre equipo(recordemos que el nombre vendría siendo el GroupName) el id de cada uno de los RadioButtons sería: equipo_0, equipo_1 y equipo_2. Una vez que tenemos claro el estándar para la definición de los RadioButtons, no queda mas que usar las siguientes funciones( click para ver un ejemplo funcionando):

JavaScript:
  1. function ffw_GetRadioButtonValue(Name)
  2. {
  3. var CurrentElementStr;
  4. var Found;
  5. var Value;
  6. Found = false;
  7. Counter = 0;
  8. CurrentElementStr = Name + "_" + Counter;
  9. while( $(CurrentElementStr) && !Found)
  10. {
  11. if( $(CurrentElementStr).checked )
  12. {
  13. Value = $(CurrentElementStr).value;
  14. Found = true;
  15. }
  16. Counter++;
  17. CurrentElementStr = Name + "_" + Counter;
  18. }
  19. return Value;
  20. }
  21. function ffw_SetRadioButtonValue(Name, Value)
  22. {
  23. var CurrentElementStr;
  24. var Found;
  25. Found = false;
  26. Counter = 0;
  27. CurrentElementStr = Name + "_" + Counter;
  28. while( $(CurrentElementStr) && !Found)
  29. {
  30. if( $(CurrentElementStr).value == Value )
  31. {
  32. $(CurrentElementStr).checked = true;
  33. Found = true;
  34. }
  35. Counter++;
  36. CurrentElementStr = Name + "_" + Counter;
  37. }
  38. return Value;
  39. }

• Posted in Javascript