Hola!, justamente estaba repasando las clases en javascript y con tu problema hize una clase especialmente para lo que necesistas.
Primero agrega éste script:
Código Javascript
:
Ver original<script type="text/javascript">
var meses=new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
var selecciones={ mes01:"no",
mes02:"no",
mes03:"no",
mes04:"no",
mes05:"no",
mes06:"no",
mes07:"no",
mes08:"no",
mes09:"no",
mes10:"no",
mes11:"no",
mes12:"no",
cantidad:0,
cadena:"",
coleccion:"",
anclarMes:function(m){
n=parseInt(m.replace(/mes0?/i,""))-1;
s=selecciones;
m=meses[n];
s.cadena+=(s.cadena=="")?m:","+m;
s.coleccion=s.cadena.split(",");
},
desanclarMes:function(m){
n=parseInt(m.replace(/mes0?/i,""))-1;
s=selecciones;
m=meses[n];
s.cadena=s.cadena.replace(new RegExp("(^("+m+"),?|(,"+m+"))","i"),"");
s.coleccion=s.cadena.split(",");
} };
function guardarSelecciones(This){
with(This){
if(attr("class")=="color fondotd"){
selecciones[attr("id")]="si";
selecciones.anclarMes(attr("id"));
selecciones.cantidad++;}
else{
selecciones[attr("id")]="no";
selecciones.desanclarMes(attr("id"));
selecciones.cantidad--;}
}
}
</script>
Ahora cambia:
Código Javascript
:
Ver original$(document).ready(function(){
$("td.color").live('click', function(){
$(this).toggleClass("fondotd");
});
});
Por:
Código Javascript
:
Ver original$(document).ready(function(){
$("td.color").live('click', function(){
$(this).toggleClass("fondotd");
guardarSelecciones($(this));
});
});
Prácticamente es agregar la función
guardarSelecciones($(this)); dentro de la función del evento
click
Listo!!! Ahora te explico como obtener la cantidad de los meses seleccionados y más.
- Propiedad selecciones.cantidad - devuelve el número de meses seleccionados.
- Propiedad selecciones.cadena - devuelve los nombres de los meses seleccionados en un sólo string(No se ordenan).
- Colección(Array) selecciones.coleccion[Número] - los meses seleccionados son almacenados aquí(No se ordenan).
- Propiedades mes01, mes02...(hasta el mes12) - devuelve "si" cuando el mes fué seleccionado y "no" cuando no fué seleccionado(Ordenados por mes: enero, febrero, marzo, etc.)
Espero que sea de tu agrado.
Lee bien para que no vallas a copiar algo mal, ya que el código funciona perfectamente!, Saludos!