Jump to content
silvagno

Input date time picker

Recommended Posts

Boa tarde,

 

Tenho a seguinte input date time,  o que acontece que essa input chama sua id, porem não funciona com o meu script porque o script chama name e quando mudo para id não funciona o date time.

É um script de replaceAll, ou seja ao selecionar a data e a hora no date time em teoria deveria substituir (NOME DO CLIENTE) pela data e hora.

 

Bom, eu gostaria de saber se tem como modificar o script para chamar a id em vez do name ou ajustar a input para ser chamada por name.

$('input[name="demo3"]').change(function(){
var nome = $(this).val();
var text = $('textarea[name="nome pessoal"]').val();
$('textarea[name="nome pessoal"]').val(text.replaceAll('(NOME DO CLIENTE)',nome));
});
<input id="demo3" type="text" size="25"><a href="javascript:NewCal('demo3','ddmmmyyyy',true,24)"><img src="images/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a>

 

Share this post


Link to post
Share on other sites

Pra chamar o ID é só colocar um "#" antes do id do elemento.

Ex:

<input type="text" id="meuinput">
<script>
	var meuinput = $("#meuinput").val();
</script>

 

No seu código ficaria assim:

$('#demo3').change(function(){
var nome = $(this).val();
var text = $('textarea[name="nome pessoal"]').val();
$('textarea[name="nome pessoal"]').val(text.replaceAll('(NOME DO CLIENTE)',nome));
});

Share this post


Link to post
Share on other sites
39 minutos atrás, Julio Cavallari disse:

Pra chamar o ID é só colocar um "#" antes do id do elemento.

Ex:


<input type="text" id="meuinput">
<script>
	var meuinput = $("#meuinput").val();
</script>

 

No seu código ficaria assim:


$('#demo3').change(function(){
var nome = $(this).val();
var text = $('textarea[name="nome pessoal"]').val();
$('textarea[name="nome pessoal"]').val(text.replaceAll('(NOME DO CLIENTE)',nome));
});


Oi Julio, tentei aqui e não deu certo, carrega o datetime porem não reemplaça

1.png

2.png

3.png

4.png

5.png

Share this post


Link to post
Share on other sites

Troque o método replaceAll() por replace.

O método replaceAll() substitui o elemento todo e não somente o texto dentro dele.

 

$('#demo3').change(function(){
var nome = $(this).val();
var text = $('textarea[name="nome pessoal"]').val();
$('textarea[name="nome pessoal"]').val(text.replace("(NOME DO CLIENTE)",nome));
});

Dessa maneira ao mudar o valor do input#demo3 irá alterar o valor do <textarea>. Porém o método .change() não é ativado se você alterar o valor do elemento via JavaScript como está acontecendo ai.

 

Usando .change() você só ativará a função se você mesmo alterar o valor do input#demo3

Share this post


Link to post
Share on other sites
15 horas atrás, Julio Cavallari disse:

Troque o método replaceAll() por replace.

O método replaceAll() substitui o elemento todo e não somente o texto dentro dele.

 


$('#demo3').change(function(){
var nome = $(this).val();
var text = $('textarea[name="nome pessoal"]').val();
$('textarea[name="nome pessoal"]').val(text.replace("(NOME DO CLIENTE)",nome));
});

Dessa maneira ao mudar o valor do input#demo3 irá alterar o valor do <textarea>. Porém o método .change() não é ativado se você alterar o valor do elemento via JavaScript como está acontecendo ai.

 

Usando .change() você só ativará a função se você mesmo alterar o valor do input#demo3

Julio, olha o que aconteceu, quando insiro a data através do date time ele não esta reemplaçando, porem quando eu digito a data na input ele reemplaça. o que pode ser?

Share this post


Link to post
Share on other sites
Em 30/09/2018 at 14:57, silvagno disse:

Julio, olha o que aconteceu, quando insiro a data através do date time ele não esta reemplaçando, porem quando eu digito a data na input ele reemplaça. o que pode ser?

O que acontece é que o método .change() do jQuery não é disparado quando há alguma alteração via JS no input. Por isso quando você altera pela date time não funciona. O que você pode fazer é usar um .trigger() no date time. Fazendo assim ele disparar artificialmente o método .change(). Tente alterar a função do date time, e adicione isso:

$('#demo3').trigger('change');

Logo após o date time inserir o valor no input#demo3

Share this post


Link to post
Share on other sites
Em 01/10/2018 at 21:30, Julio Cavallari disse:

O que acontece é que o método .change() do jQuery não é disparado quando há alguma alteração via JS no input. Por isso quando você altera pela date time não funciona. O que você pode fazer é usar um .trigger() no date time. Fazendo assim ele disparar artificialmente o método .change(). Tente alterar a função do date time, e adicione isso:


$('#demo3').trigger('change');

Logo após o date time inserir o valor no input#demo3

 

Obrigado por responder Julio, sou leigo nesse assunto. Por favor me confirme se o codigo final ficaria assim:

Desde já agradeço.

 

$('#demo3').change(function(){
$('#demo3').trigger('change');
var nome = $(this).val();
var text = $('textarea[name="nome pessoal"]').val();
$('textarea[name="nome pessoal"]').val(text.replace("(XXXX)",nome));
});

 

Share this post


Link to post
Share on other sites
14 horas atrás, silvagno disse:

 

Obrigado por responder Julio, sou leigo nesse assunto. Por favor me confirme se o codigo final ficaria assim:

Desde já agradeço.

 


$('#demo3').change(function(){
$('#demo3').trigger('change');
var nome = $(this).val();
var text = $('textarea[name="nome pessoal"]').val();
$('textarea[name="nome pessoal"]').val(text.replace("(XXXX)",nome));
});

 

Não, essa parte:

$('#demo3').trigger('change');

Tem que ser colocada nas funções do date time. Para você ativar o método .change() artificialmente. A função que substitui o texto está correta.

Share this post


Link to post
Share on other sites
Em 11/10/2018 at 00:52, Julio Cavallari disse:

Não, essa parte:


$('#demo3').trigger('change');

Tem que ser colocada nas funções do date time. Para você ativar o método .change() artificialmente. A função que substitui o texto está correta.

Quando você diz "colocada nas funções do date time" é colocar no arquivo .js? se sim, eu tentei e não consegui identificar o lugar correto. Deixo o link do arquivo por se pode verificar por favor.

 

arquivo.js

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By TeixeiraRamos
      Olá,
      Com essa "Procedures" consigo criar a coluna data e semana.
      Como poderia fazer para a "Precedures" criar uma outra coluna só com o dia e o mês, como por exemplo: 27 de fevereiro
      Obrigado
      BEGIN DECLARE var_data DATE; DECLARE var_dia VARCHAR(50); DECLARE contador INT DEFAULT 0; SET var_data = data_inicial; SET var_dia = DAYNAME(data_inicial); WHILE contador < intervalo DO INSERT INTO tb02_santosdodia(ctb02_datasantosdia, ctb02_diassemanas) VALUES (var_data, var_dia); SET contador = contador + 1; SET var_data = DATE_ADD(data_inicial, INTERVAL contador DAY); SET var_dia = DAYNAME(var_data); END WHILE; END  
       
    • By TeixeiraRamos
      Olá,
      Por favor favor, em um script tenho:
      <?php $sql = "SELECT pensamento_do_dia FROM tbpdodia WHERE data_inicio = CURRENT_DATE"; . . . ?> Meu computador a data e a hora se encontram normal.
      Contudo, 2 (duas) horas antes das 00:00 a data muda, só no site, para o dia dia seguinte.
      Ontem, 23/02/2019, às 19:00 estava no site 23/12/2019 (igual ao computador). Quando chegou mais ou menos às 22:01, abri o site já se entrava a data 24/02/2019.
      A query dentro das linhas <?php ?> também influencia. Tenho que colocar algo na sql com current_date. 
    • By asacap1000
      Salve Galera, estou quase finalizando um relatório porém travei em um campo.
      Este relatório consiste em subtrair hora de entrada e saída, trazer em dias horas e minutos de um período.
      Depois preciso calcular a média destes resultados.
      eu barrei na parte de dias não vem a informação correta.
       
      Segue select se alguem puder me dar uma força.
       
      SELECT io.id_in_out, IOP.DOCUMENT,IO.TIME_IN entrada, IO.TIME_RELEASE_PP saida, LPAD(TRUNC(((IO.TIME_RELEASE_PP - IO.TIME_IN) /24 )), 2, '0') || ':' || LPAD(TRUNC(((IO.TIME_RELEASE_PP - IO.TIME_IN) * 24 )), 2, '0') || ':' || LPAD(TRUNC(MOD((IO.TIME_RELEASE_PP - IO.TIME_IN) * 86400, 3600) / 60), 2, '0') || ':' || LPAD(TRUNC(MOD(MOD((IO.TIME_RELEASE_PP - IO.TIME_IN) * 86400, 3600), 60)), 2, '0') TEMPO FROM DESMEMBR DD, IN_OUT_POS IOP, IN_OUT IO, SPEDITEURE S, VEHICLE V, DRIVER D WHERE DD.TYP_PROCESS = 'DINACI' AND 'DI' = IOP.TYP_DOCUMENT AND DD.NR_DI = IOP.DOCUMENT AND IOP.ID_IN_OUT = IO.ID_IN_OUT AND IO.ART_IN_OUT IN ('CA', 'CC', 'CCE') AND IO.STAT <> '80' AND S.ID_SPEDITEUR = IO.ID_SPEDITEUR AND V.ID_VEHICLE = IO.ID_VEHICLE AND IO.TIME_IN >= TO_DATE('01/12/2018', 'dd/mm/yyyy') AND IO.TIME_IN <= TO_DATE('31/12/2018', 'dd/mm/yyyy') AND D.ID_DRIVER = IO.ID_DRIVER O resultado acima está vindo assim:
       
      1    378470    1211942181    14/12/2017 09:35:41    14/12/2017 13:32:31    00:03:56:50
      2    378470    1211942181    14/12/2017 09:35:41    14/12/2017 13:32:31    00:03:56:50
       
      Depois de acertar isso preciso realizar a média que a principio eu utilizaria o AVG mas dá erro.
       
      Agradeço quem puder me ajudar.
    • By Nioshi
      Bom dia pessoal, tenho o seguinte problema, meu back-end com PHP precisa fazer um select no banco de dados SQL server, e uma das condições para pegar o dado é a data, até ai sem problemas, se eu utilizar:
      $dataInicio = $dataInicio->format('d/m/Y'); ele pega o dado sem problema algum do meu banco, porem quando foi tentado implementar em outro SQL Server, ele retorna o seguinte erro: 
      SQLSTATE [22007, 242]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]A conversão de um tipo de dados nvarchar em um tipo de dados datetime resultou em um valor fora do intervalo. ou seja, eu acho que o problema é a forma que o sql foi instalado(inglês,português), enfim, o que eu realmente preciso e se tem como eu saber o dateformat do SQL server, antes de setar a variável da data para consulta.
       
      no SQL do cliente se colocar o seguinte código:
      $dataInicio = $dataInicio->format('m/d/y'); ele também funciona sem problema algum, o que eu preciso saber é quando utilizar qual.
       
      Obrigado desde já.
    • By TeixeiraRamos
      Por favor,
      MySQL com PHP7
      Estou digitando assim:
      echo "Data Ano: " . $row_registros['DATE(format([data_ano_liturgico],("d/m/Y")'] . "<br>"; Esperava esse resultado, por exemplo: 14/09/2018
       
      Estou tendo esse resultado:
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.