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

    [JS] Funzioni da migliorare

    Al submit di un form vengono eseguite due funzioni che effettuano controlli sui campi.

    la prima controlla se ci sono dei campi con lo stesso nome

    codice:
    function trovadoppi(ff) {
      var ok = true;
      var listacampi = new Array();
      for(var i=0; i<ff.length; i++) {
        var nn = ff.elements[i].name;
        var diversi = true;
        for(var j=0; j<listacampi.length; j++) {
          if(listacampi[j] == nn) {
            diversi=false;
            //alert("campi uguali: "+nn);
            if(!trattadoppi(ff,nn)) ok=false;
            break;
          }
        }
        if(diversi) listacampi.push(nn);
      }
      return ok;
    }
    la seconda (richiamata dalla prima) disabilita quel campo che avendo il nome uguale ad un altro ha lo stato hidden.

    codice:
    function trattadoppi(f,n) {
      var ob = f.elements[n];
      var k = ob.length;
      if(k < 2) {
        alert("errore: mismatch");
        return false;
      }
      for(var i=0; i<ob.length; i++) {
        if(ob[i].type == 'hidden') {
          ob[i].disabled = true;
          k--;
          //alert("disabilitato il campo hidden "+n);
        }
      }
      if(k < 2) return true;
      else return false;
    }

    le funzioni fanno il loro dovere ma davanti ad una gran quantità di campi rendono il POST molto lento.
    SI possono migliorare un po' nella direzione della velocizzazione del trattamento dei campi?
    www.sergiogandrus.it
    Il mio blog sull'informatica

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    sarà una considerazione scontata ma la migliore delle soluzioni non sarebbe chiamare tutti i campi del form con nomi differenti?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    La considerazione è lecita ma non è possibile.
    E' un po' lungo da spiegare.
    www.sergiogandrus.it
    Il mio blog sull'informatica

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 © 2026 vBulletin Solutions, Inc. All rights reserved.