Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Intereccettare pistola su textfield

    ciao!
    ho una text field che prende in input il testo letto letto da una pistola ad infrarossi.
    una volta terminato l'input richiama una funzione ajax che svolge determinate operazioni.
    però, se il valore lo metto a mano funziona bene.
    se uso la pistola no, perchè pare che la pistola non legga tutto insieme, ma un carattere per volta.
    per ora ho fatto questo:
    codice:
    <input type="text" id="articolo" name="articolo" oninput="javascript:addArticoloFatturazione(this.value);" value="" autofocus>
    probabilmente non è il tipo di evento che mi serve.
    voi cosa consigliate?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    a intervalli regolari controlli che il campo input contenga qualcosa di valido e in quel caso fai quello che devi e svuoti il campo di input.

  3. #3
    uhm, non ti seguo.
    che controllo dovrei fare?

    ti faccio un esempio.
    questa è la console se faccio una richiesta quando metto a mano il codice:
    codice:
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    il valore arriva tutto insieme e corretto con una sola richiesta.

    se invece sparo con la pistola:
    codice:
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    POST http://file.php 200 OK 329ms	jquery....min.js (riga 6)
    13 richieste (quanto sono i caratteri).
    ogni richiesta da 1 carattere.
    e quindi ovviamente non funziona.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    Anzichè inviare il valore del campo ad ogni input, ne controlli il contenuto ogni 100 millisecondi (o meno se preferisci). Se il campo contiene 13 caratteri esegui addArticoloFatturazione e svuoti il campo.

    codice:
    function checkInput(){
        var articolo = document.getElementById('articolo');
        if(articolo.value.length === 13){
            addArticoloFatturazione(articolo.value);
            articolo.value = '';
        }
    }
    
    setInterval(function(){checkInput()}, 100);

  5. #5
    in effetti a questa soluzione non avevo pensato.

    faccio qualche prova, ma vedendo quanto ci impiega la prima richiesta mi sa che devo alzare il tempo di timer.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    se per timer intendi il setInterval considera che non c'entra nulla con il tempo della richiesta.

  7. #7
    ciao!

    alla fine ho risolto usando solo php e tralasciando ajax e javascript.
    visto che funziona bene, veloce e senza problemi direi che può andare.
    grazie cmq per l'aiuto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.