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