Retornar dados da função -> campo form

5 respostas
M

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

5 Respostas

M

Messiasfreitas.

Coloca seu código HTML e JavaScript completo que fica mais fácil de ajudar?

R

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");
}
}
M

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>
R

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"/>
M

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

Criado 2 de janeiro de 2016
Ultima resposta 9 de jan. de 2016
Respostas 5
Participantes 3