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

    JQUERY e validazione campi AJAX

    Salve a tutti... io ho un problema legato alla validazione di INPUT con AJAX
    Con questo codice assegno al blur dell'INPUT il controllo
    codice:
    $('input,select,textarea,checkbox,radio').blur(function(){ 
     var campo=$(this);
     var val=$(this).val();
     var func='controlla_campo';
     var id=$(this).attr('id');
     var type=$(this).attr('type');
     var url='".creaPath("/funzioni_ajax_php/funzioni_ajax.php",_OS,_PERCORSO_ROOT)."?FUN='+func+'&par1='+id+'&par2='+val+'&par3='+type;
     $.ajax({ 
      url: url, 
      async: true,
      success: function(res){ 
        		campo.removeClass('ok');
    		campo.removeClass('err');
       		if(res==1) campo.addClass('ok');
    		else if(res==0) campo.addClass('err');
    		else alert('id: '+id+' - val: '+val+' - res: '+res);
    
      }
     }).responseText;
    });
    E fin qui tutto ok.
    Il mio problema nasce se io scorrendo velocemente i campi col tab per posizionarmi sul campo desiderato invio tante richieste di controlli. Sapete darmi una soluzione un po furba per temporizzare il tutto? tipo se io sto almeno 2 secondi allora faccio il controllo altrimenti non invio dati al server così non intaso rete e server?
    Grazie
    Rino
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    codice:
    var myAjaxRequest=false;
    $('input,select,textarea,checkbox,radio')
      .focus(function(){
        $(this).data('timer',new Date());
      })
      .blur(function(){
        var oldDate=$(this).data('timer');
        if($(this).data('timer')){
          var newDate=new Date();
          if(newDate>oldDate+2000){
             if(myAjaxRequest){
                myAjaxRequest.abort();
             }
             ...
             myAjaxRequest=$.ajax({ ... });
          }
        }
      })
    non ho provato

    non puo' essere meglio lanciare la richiesta solo se il value/checked/selectedIndex effettivamente cambia mentre il focus e' su un campo?

  3. #3
    ci avevo pensato, ma non c'è il rischio di fare ancora più richieste al server? ogni lettera che scrivo gli rimanda un controllo perchè viene attivato l'onchange. Non è ancora peggio?
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Impostare il async: false in modo da redere la richiesta sincrona (blocca il broser finché non riceve un response) l'hai provata?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da rinosan_76bis
    ci avevo pensato, ma non c'è il rischio di fare ancora più richieste al server? ogni lettera che scrivo gli rimanda un controllo perchè viene attivato l'onchange. Non è ancora peggio?
    probabilmente hai ragione,
    non avevo fatto troppo caso a quello che sembra tu faccia lato server
    per esempio, se fosse un autosuggest farlo scattare al blur non sarebbe stata una buona scelta

    ciao

  6. #6
    Originariamente inviato da cavicchiandrea
    Impostare il async: false in modo da redere la richiesta sincrona (blocca il broser finché non riceve un response) l'hai provata?
    Si ed è una pessima idea... in locale funziona, ma in produzione il blocco del browser rischia a volte di essere di 1 o 2 secondi rendendo poco usabile il modulo: l'utente non vede più lampeggiare il cursore e si chiede che succede...
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da rinosan_76bis
    Si ed è una pessima idea... in locale funziona, ma in produzione il blocco del browser rischia a volte di essere di 1 o 2 secondi rendendo poco usabile il modulo: l'utente non vede più lampeggiare il cursore e si chiede che succede...
    Chiaramente l'utente va avvisato con messaggi a video (elaborazione in corso.... si prega d'attendere) comunque come non detto
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    si ovvio... ma tu pensa una pagina con un form da 20 o 25 campi (a me capita spesso) a 2 secondi al campo sono 1 minuto solo per scorrere coi tab... quello mi piglia per i capelli! AHAHAH
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da rinosan_76bis
    si ovvio... ma tu pensa una pagina con un form da 20 o 25 campi (a me capita spesso) a 2 secondi al campo sono 1 minuto solo per scorrere coi tab... quello mi piglia per i capelli! AHAHAH
    Anche la logica di verificare tutti i campi online (onfocus/onblur) non è il massimo, davo per scontato che questo tipo di verifiche/controlli fossero centellinati, pensiero personale, auguri per il lavoro.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.