Showing results for tags 'onkeyup'. - Fórum iMasters
Showing results for tags 'onkeyup'.
danielpinho posted a topic in Javascript
Boa tarde pessoal, Estou desenvolvendo um sistema de pagamento via cartão de crédito que requer a execução de um ajax (request https) quando o usuário digita o número do cartão, a fim de capturar a bandeira do mesmo. O javascript deve enviar via ajax somente os 6 primeiros dígitos do cartão. A função já está funcionando parcialmente, da seguinte forma: quando o usuário digita o sexto dígito, o ajax faz a requisição e retorna o resultado. O problema é que quando o usuário continua digitando o restante do número do cartão, o ajax continua fazendo uma requisição a cada tecla pressionada, o que vai acabar sobrecarregando desnecessariamente o meu servidor. Eu sei que o ideal seria acionar a função somente quando a minha keyword tivesse lenght=6 (assim, ao continuar digitando a função não seria acionada), porém tem pessoas que copiam e colam o número do cartão de uma vez, e isso geraria um bypass na função... Além disso, o sistema deve ser capaz de reconhecer que houve uma eventual mudança nos 6 números digitados inicialmente, para fazer uma nova requisição ajax com esses números novos. A solução que pensei, em síntese, foi criar uma variável chamada "lastquery", inicialmente com o valor "000000". Digamos que os 6 dígitos pesquisados estivessem na variável "sixdigits". Quando a requisição ajax fosse feita, a variável "lastquery" teria valor alterado para o mesmo valor de "sixdigits". E a requisição ajax ficaria condicionada da seguinte forma: if (lasquery !== sixdigits) { executa ajax }. O problema é que não está dando certo. Ele continua executando normalmente, mesmo quando o valor de lastquery é o mesmo valor de sixdigits. Alguém mais inteligente do que eu consegue me ajudar? Segue o código que não está funcionando perfeitamente. Reparem que fiz um alert para verificar o que estava dando errado, mas a mensagem que recebo no alert é sempre algo do tipo: "10100 is not equal to 10100". Não consigo entender porque isso acontece, já que lá em cima coloquei a condicionante !==. Obrigado! <form method="post"> <input type="text" name="ccnumber" id="ccnumber" value="" onkeyup="getcardbin()"> </form> <script> var lastquery = "000000"; function getcardbin() { var min_length = 6; var keyword = $('#ccnumber').val(); if (keyword.length >= min_length) { var justsix = keyword.substring(0, 6); if (justsix !== lastquery) { $.ajax({ url: '/getcardbin.cgi', type: 'POST', data: { 'tkn': 'token_interno', 'tid': 'token_interno', 'bin': justsix }, success:function(data){ $('#returnmsg').prepend(data); alert(justsix + ' is not equal to ' + lastquery); var lastquery = justsix; } });	} } } </script>
onkeypress na execução de funções
Pessoal estou com um pequeno problema e sobrecarga. Criei uma extensão para ajudar na minha digitação no serviço (o "programa" roda a partir do navegador opera/chrome) só que o mesmo muda tudo toda vez que se insere um dado então tive que me forçar a executar as funções toda vez que uma tecla é pressionada, só que esse bendito programa não dá refresh na página, é todo em ajax então quando a função se executa mais de 1200 vezes começa a pesar no navegador, aí sou obrigado a salvar tudo e atualizar a página (parar perde tempo demais). document.body.onkeyup = function (e) { funcao_verificadora(); } Minha dúvida é: Tem condição melhorar isso, tipo limpar cache em tempo de execução? Tipo executar a função e já ir limpando.