Validar data dentro de período [RESOLVIDO]

Pessoal,

Tenho uma função javascript para validar data, (ta feia, eu sei… Por isso peço a ajuda de vcs :slight_smile: ), mas quando está dentro do mês ele valida blz, mas se escolho outro mês não valida, no sentido:

29/09/2014 até 02/10/2014 fala que está acima de 30 dias…

[code]
var checkForm = function(form){
var inputs = form.getElementsByTagName(‘input’);
var dataIni=formIndex.dataIni.value;
var dataFin=formIndex.dataFin.value;
var horaIni=formIndex.horaIni.value;
var horaFin=formIndex.horaFin.value;
var Compara01 = parseInt(dataIni.split("/")[2].toString() + dataIni.split("/")[1].toString() + dataIni.split("/")[0].toString());
var Compara02 = parseInt(dataFin.split("/")[2].toString() + dataFin.split("/")[1].toString() + dataFin.split("/")[0].toString());

if(form.grama.value != "0"){
for(var i = 0, l = inputs.length; i < l; i++){
    var input = inputs[i];
    if(input.type == "checkbox" && input.checked){
    	
         if(dataIni != "" && dataFin != ""){
        	if(horaIni.length > 3 && horaFin.length > 3){
        		if(Compara02 >= Compara01) {
        			if(Compara02 <= Compara01 + 30){ // AQUI ESTÁ A VALIDAÇÃO

            			if(horaFin >= horaIni) {
            				return true;	
            			} else {
            				alert('Hora Inicial maior que Hora Final');
            				return false;
            			}
        			
        			} else {
        				alert('Limite de consulta de 30 dias');
        				return false;
        			}
        			
        		} else {
        			alert('Data Inicial maior que Data Final');
        			return false;
        		}
        	} else {
           		alert("Campo(s) Hora Ini/Fin vazio(s)");
               	return false;	
           	}            			
        } else {
        	alert("Campo(s) Data Ini/Fin vazio(s)");
           	return false;	
        } 
    }
}

alert("Campos obrigat\u00f3rios: Data/hora e pelo menos um item");
return false;

} else {
	alert("Selecione um Grama");
	return false;
}

}; [/code]

Travei com Jquery a limitação de data, então a data inicial já limita o início da data final e a data final começa pelo menos pelo dia de hoje, evitando a data inicial ser menor…

Só que estou com um problema, se a pessoa clicar no campo e digitar manualmente burla o jquery… tem alguma função que limite isso?? para já validar quando a pessoa digita?

campo:

<div title="Data Inicial">Dt. Ini.:&nbsp;<input type="text" size="6" maxlength="10" id="dataIni" name="dataIni"/></div>

Em jquery:

$(function() {
$.datepicker.setDefaults({
dateFormat: 'dd/mm/yy',
dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','---ta','Sábado'],
dayNamesMin: ['D','S','T','Q','Q','S','S','D'],
dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','---','Sáb','Dom'],
monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'],
nextText: 'Pr&oacute;ximo',
prevText: 'Anterior',
required: true,
showOtherMonths:true,
selectOtherMonths: false,
changeMonth:true,
changeYear:true, 
firstDay: 0, 
showOn: 'both', 
showOn:"button",
buttonImage: "./img/calendar_icon.png",
buttonImageOnly: true
});
 
$('#dataIni').datepicker({onSelect: function(date) {
date = $(this).datepicker('getDate');
var maxDate = new Date(date.getTime());
maxDate.setDate(maxDate.getDate() + 31);
$('#dataFin').datepicker('option', {minDate: date, maxDate: maxDate})  
}});
 
$('#dataFin').datepicker({minDate: 0, numberOfMonths: 2});
});

E também, com essa validação de período:

[code]var DataIni = new Date(2014,09,29);
var DataFim = new Date(2014,10,02);
var DiasEmMilisegundos = 100060602430;
//1000 Milisegundos
//60 Segundos
//60 Minutos
//24 Horas
//30 Dias <-- Aqui vocÊ coloca quandos dias quer

if( DataIni.getTime()+DiasEmMilisegundos >= DataFim.getTime() ){
alert(“Entre as Datas”);
}else{
alert(“Passou de 30 dias”);
}[/code]