Olá Pessoal!
Primeira vez aqui.
Estou brincando com javascript. Não sou programador. Dúvida:
Tenho um formulário de dados que, em um campo de DATA, preciso verificar se o usuário entrou com dada menor que a data atual.
Fiz uma funçao em javascript que faz a comparação e se assim foi, no PROMPT, o usuário digita a data correta.
Quero que a data digitada no prompt (função), retorne para o campo no formulário.
Não estou conseguindo nem a pau. Tentei várias alternativas.
obs: estou usando: document.getElementByID(‘DataInicial’).innerHTML = datacerta e document.geraAgenda.DataInicial.value = datacerta (onde geraAgenda é o nome do form e DataInicial é o campo.
Sei que isto é básico, mas, por favor, qual o comando para envio de dados da variável para o campo do form?
Queiram me mandar um exemplo deste código pois os que encontrei na internet não me atenderam.
Obrigado,
Messias
Messiasfreitas.
Coloca seu código HTML e JavaScript completo que fica mais fácil de ajudar?
vou colocar trechos de código:
Html:
Data: <input type="text" id="dataInicial" /> <input type="button" onClick="verificarData()" value="Verificar Data"/>
Javascript:
function verificarData(){
var dataInicial = document.getElementById("dataInicial").value;
var data = new Date();
var dataAtual = new Date();
data.setYear(dataInicial.split("/")[2]);
data.setMonth(dataInicial.split("/")[1] - 1);//- 1 pq em js é de 0 a 11 os meses
data.setDate(dataInicial.split("/")[0]);
if(data.getTime() > dataAtual.getTime()){
alert("Data digitada é maior que a data Atual");
} else if(data.getTime() < dataAtual.getTime()){
alert("Data digitada é menor que a data Atual");
} else {
alert("Data digitada é igual que a data Atual");
}
}
Olá Marco Bruno e Rodrigo, obrigado por sua atenção e um grande ano de muito sucesso pra você.
Aqui está apenas os códigos em questão, observem a inserção do comando “prompt” na função. O input da data é que quero que retorne ao campo DataInicial no formulário html.
FUNÇÃO JAVASCRIPT
function compdata() {
var dataatual = new Date();
var dia = dataatual.getDate();
if (dia.toString().length == 1)
dia = “0”+dia;
var mes = dataatual.getMonth()+1;
if (mes.toString().length == 1)
mes = “0”+mes;
var ano = dataatual.getFullYear();
dataatual = ano+"-"+mes+"-"+dia;
// -o-o-o-o-o-o-
var datainicio = document.getElementById(‘DataInicial’).value;
datainicio = new Date(datainicio);
var dia = datainicio.getDate()+1;
if (dia.toString().length == 1)
dia = “0”+dia;
var mes = datainicio.getMonth()+1;
if (mes.toString().length == 1)
mes = “0”+mes;
var ano = datainicio.getFullYear();
datainicio = ano+"-"+mes+"-"+dia;
//-o-o-o-o-o-o-o-o-
if (datainicio < dataatual){
var datacerta = prompt(“Digite uma data maior ou igual à data atual”);
if (datacerta != null) {
document.getElementById(‘DataInicial’).innerHTML = datacerta;
}
}
}
HTML:
<table>
<td><label for="DataInicial">Data Inicial:</label></td>
<td><input type="date" name="DataInicial" id="DataInicial" required size='10' onblur="compdata(this.value)"/></br></td>
<tr><td colspan="6"><center><input type="submit" value="Gerar" /></center></td></tr>
</table>
messiasfreitas,
desculpe, não tinha entendido o que você queria. Achei que era como verificar se a data atual era menor que a data digitada.
vou colocar o código novamente. Repare que o valor do prompt é armazenado na variavel datacerta e após isso é passada a variavel para o value do id do elemento do DOM.
<script>
function verificarData(){
var dataInicial = document.getElementById("dataInicial").value;
var data = new Date();
var dataAtual = new Date();
data.setYear(dataInicial.split("/")[2]);
data.setMonth(dataInicial.split("/")[1] - 1);//- 1 pq em js é de 0 a 11 os meses
data.setDate(dataInicial.split("/")[0]);
if(data.getTime() >= dataAtual.getTime()){
alert("Data digitada é maior ou igual que a data Atual");
} else {
var datacerta = prompt("Digite uma data maior ou igual à data atual");
document.getElementById("dataInicial").value = datacerta
}
}
</script>
Data: <input type="text" id="dataInicial" /> <input type="button" onClick="verificarData()" value="Verificar Data"/>
Oi Rodrigo.
Muito obrigado pela resposta.
Notei que o campo no form tem que ser tipo TEXT e não DATE, assim, pergunto, o que é melhor?
. manter o tipo text no form e fazer o tratamento posterior ou deixá-lo no tipo date e converter para data o que sai do prompt?
Gostaria de manter como DATE no form para facilitar a entrada de data pelo usuário.
De qualquer forma, muito obrigado pela sua inteligência colocada à minha disposição.
Messias