miércoles, 16 de junio de 2010

Recuperando nombres de checkbox con jQuery

¿En algún momento han necesitado recuperar una lista de nombres de checkboxs que están seleccionados en una página?

Pues yo ahora me he visto en la necesidad de hacerlo y para ello he creado el siguiente script:




   1:      $(document).ready(
   2:          function()
   3:          {
   4:          //Esta funcion agrega y elimina los nombres de los checkbox al hidValores
   5:              $('*:checkbox').click(
   6:              function()
   7:              {
   8:                  var tagId = $(this)[0].id;
   9:                  var valoresActuales = document.getElementById('hidValores').value;
  10:                  if ($(this)[0].checked)
  11:                  {
  12:                      if (valoresActuales.indexOf(tagId) != -1)
  13:                      { alert('ya existe'); }
  14:                      else
  15:                      {
  16:                          alert('no Existe');
  17:                          document.getElementById('hidValores').value += tagId;
  18:                          alert('Se ha agregado');
  19:                      }
  20:                  }
  21:                  else
  22:                  {
  23:                      if (valoresActuales.indexOf(tagId) != -1)
  24:                      {
  25:                          alert('ya existe');
  26:                          valoresActuales = valoresActuales.substring(0, valoresActuales.indexOf(tagId)) +
  27:                          valoresActuales.substring(valoresActuales.indexOf(tagId)+tagId.length, valoresActuales.length);
  28:                          document.getElementById('hidValores').value =valoresActuales ;
  29:                          alert('Se ha eliminado');
  30:                      }
  31:                      else { alert('no Existe'); }
  32:                  }
  33:   
  34:              }
  35:              );
  36:          }
  37:      );
 

Obviamente, los alerts pueden eliminarse en entornos productivos, yo los usé para entorno de desarrollo y testeo.

lo que hace este script es, a todos los checkboxs de la página($('*:checkbox'))  asociarles en el evento click la función javascript que ahi se detalla, la que accede a un campo hidden en la página llamado hidValores y agrega o elimina el nombre del checkbox clicado segun corresponda.

Con este se puede, por ejemplo, en el codeBehind recuperar este hidden y extraer de él la data necesaria y llevar a cabo las tareas necesarias sin las toneladas de código javascript que serian necesarias de otro modo y sin estar complicandose por los controles checkbox creados dinamicamente.

Eso por ahora, hasta la próxima

Manuel Gatica Holtmann

No hay comentarios:

Publicar un comentario