JSFiddle - React, Tailwind, and code Playground
by gustavox
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.1.47/jquery.form-validator.min.js"></script>
<form>
<div class="container textWord_about" data-link="first">
<label class="btn" for="Cinsem">
<i class="glyphicon glyphicon-calendar"></i>Primeira data
<input class="form-control checar" type="text" maxlength="10" placeholder="dd/mm/aaaa"
onkeyup="formatar('##/##/####', this, event)" name="Tinsem3" id="Cinsem"
data-validation="birthdate" data-validation-error-msg="Insira uma data válida"
data-validation-format="dd/mm/yyyy"></label>
<br><br>
<label class="btn" for="Cdesl22">
<i class="glyphicon glyphicon-calendar"></i>Segunda data
<input type="text" class="form-control checar" name="Tdesl" maxlength="10" data-validation="date"
data-validation-format="dd/mm/yyyy" data-validation-error-msg="Insira uma data válida" placeholder="dd/mm/aaaa"
onkeyup="formatar('##/##/####', this, event)" id="Cdesl22"></label>
<!-- Espelho de #aniv1,porém do tipo "date" -->
<label for="Cdesl222"></label>
<input type="date" id="Cdesl222" name="Cdesl22" class="checar" hidden="hidden" />
<!-- Auxilia na validação. Pode ser um DIV também mas precisará alterar o código -->
<label for="validou"></label>
<input type="text" id="validou" name="validou" hidden="hidden" class ="checar" value="false" />
<div class="message1 " id="message1" style="display:none;"><br><br>A segunda data deve ser igual ou posterior à primeira data.</div>
<br><br>
<button type="button" class="btn btn-primary btn-sm link" id="startBtnseg" name="TstartBtnseg"
data-link="dois" onkeyup="verificar()" disabled="disabled">
<i class="glyphicon glyphicon-ok"> OK, vamos continuar!</i></button>
<br><br>
A segunda data deve ser <b>igual ou maior</b> que a primeira, e ambas devem estar
no formato correto (ou seja, não pode aceitar letras, nem mês acima de 13 etc) para abrir o botão.
...
JavaScript
// VALIDAÇÃO DO FORMATO PELO FORM.VALIDATOR
// Chama o form.validator
$.validate({
modules: 'date'
});
// Cria uma classe que verifica se o form.validator foi true, e abre o botão.
$('.checar')
.on('validation', function (evt, valid) {
var validou = document.getElementById('validou').value = valid ? "true" : "false";
/* Verifica SE a data está OK */
if (validou === "true") {
verificar(); // chama o script abaixo antes de abrir o botão se o formato está correto
}
});
//VALIDA DATAS EM COMPARAÇÕES
var primeiradata = document.getElementById('Cinsem');
var segundadata = document.getElementById('Cdesl22');
var terceiradata = document.getElementById('Cinsem2');
var quartadata = document.getElementById ('Cdesl223');
var quintadata = document.getElementById('Cdatapgtos');
function gerarData(str) {
var partes = str.split("/");
return new Date(partes[2], partes[1] - 1, partes[0]);
}
function verificar() {
var primeira = primeiradata.value;
var segunda = segundadata.value;
var terceira = terceiradata.value;
var quarta = quartadata.value;
var quinta = quintadata.value;
// PRIMEIRA DATA X SEGUNDA DATA
if (primeira.length != 10 || segunda.length != 10) {
return;
}
if (gerarData(segunda) >= gerarData(primeira)) {
$('#startBtnseg').removeAttr('disabled', 'disabled');
$('#message1').hide();
}
else {
$('#startBtnseg').attr('disabled', 'disabled');
$('#message1').fadeIn('slow');
}
// TERCEIRA DATA X QUARTA DATA
if (terceira.length != 10 || quarta.length != 10) {
return;
}
if (gerarData(quarta) >= gerarData(terceira)) {
$('#startBtnseg2').removeAttr('disabled', 'disabled');
...