Manter INPUT atualizado depois do change da combo

9 views
Skip to first unread message

Alexandre Filho

unread,
Jul 11, 2014, 2:36:13 PM7/11/14
to jque...@googlegroups.com
Olá companheiros do Grupo, faz bastante tempo que não incomodo, mas desta vez estou precisando da ajuda dos mais experientes.
PROBLEMA:
Preciso manter o valor do input atualizado após a escolha da categoria no select.

SOLUÇÃO 1: Neste caso quando é adicionado um novo valor ao BD ele não atualiza o input;
$(document).ready(function(){
loop();
});
function loop(){
$('#expeddoc_tipo').change(function(){
var valor = $(this).val();
$.get('/api/selectultimoregistro.asp?id='+valor+'',function(resultado){
$('#expeddoc_numerodocumento').val(resultado);
});
});
setTimeout('loop()', 3000);     
}

SOLUÇÃO 2: Neste caso ele até atualiza, mas fica alternando entre o valor da primeira opção e de outra que eu escolher.
$(document).ready(function(){
loop();
});
function loop(){
$('#expeddoc_tipo').change(function(){
var valor = $(this).val();
setInterval(
                $.get('/api/selectultimoregistro.asp?id='+valor+'',function(resultado){
$('#expeddoc_numerodocumento').val(resultado);
});
                , 3000);
});
}

Será que alguém já passou por este problema e poderia me dar uma ajuda ?
Desde já agradeço a todos.

Rafael Sirotheau

unread,
Jul 11, 2014, 3:10:16 PM7/11/14
to jquery-br
A "Solução 1" acaba adicionando dois event listener ao select. Mesmo que estivesse funcional, isso seria um problema no quesito desempenho.
A "Solução 2" vai adicionar um setInterval a cada change. Dessa forma,  ficarão vários setInterval acumulados e se sobreescrevendo a cada intervalo.

Não consegui entender muito bem seu problema, sendo assim, minha solução vai ser baseado no que entendi. Que seria

1. Existe um campo input e um select;
2. O valor do input vai ser atualizado nas seguintes situações:
   2.1 Caso ocorra uma mudança no select
   2.2 Automaticamente, a cada 3s, independente de mudança ou não no select.


Sendo assim:
$(document).ready(function(){

    $('#expeddoc_tipo').change(function(){
        var valor = $(this).val();
        buscarValor(valor);
    });
    buscarValor($('#expeddoc_tipo').val());
});

setInterval(function() {
    var valor = $('#expeddoc_tipo').val();
    buscarValor(valor);
},3000)

function buscarValor(valor) {

    $.get('/api/selectultimoregistro.asp?id='+valor+'',function(resultado){
        $('#expeddoc_numerodocumento').val(resultado);
    });
}



Abraço,


--
--
Grupo de jQuery Brasil.
 
REGRAS: https://docs.google.com/document/d/1VfvTDmeHTSj-L5ouZJjQQ4OkjTCU1Hr2XtPYBNGVHH4/edit
 
USE O JSBIN.COM / JSFIDDLE.NET PARA CÓDIGOS.
 
Email: jque...@googlegroups.com
Biba: jquery-br+...@googlegroups.com
Site: http://groups.google.com/group/jquery-br?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo quot;jQuery (Brasil)" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jquery-br+...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Linkedin

Front-end Developer
+55 (11) 9 6452 1384

Alexandre Filho

unread,
Jul 11, 2014, 3:46:57 PM7/11/14
to jque...@googlegroups.com
Mais uma vez quero agradecer aos amigos do Grupo em especial ao Rafael Sirotheau.
Realmente, funcionou perfeitamente, eu imaginava que deveria usar outra função e não poderia ser feita em uma só, mas a gente fica focado e não consegue achar a solução mesmo que ela esteja na nossa frente.
Valeu por sua ajuda meu amigo, Saúde e Sucesso pra você. 
Reply all
Reply to author
Forward
0 new messages