Visualizzazione dei risultati da 1 a 7 su 7

Discussione: 2 quesiti sui form

  1. #1

    2 quesiti sui form

    Il primo:
    avrei bisogno di un controllo che verifichi (al submit) se nel form esistano due campi input con lo stesso nome. Se succede questo allora il campo che viene inviato è quello che non è "hidden".

    Il secondo:
    in questo form ho già un controllo sui campi vuoti. Come posso aggiungere anche quest'altro controllo onSubmit?


    Sono richieste possibili?
    www.sergiogandrus.it
    Il mio blog sull'informatica

  2. #2

    Re: 2 quesiti sui form

    Originariamente inviato da Harding
    Sono richieste possibili?
    Mi sa proprio di no
    www.sergiogandrus.it
    Il mio blog sull'informatica

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Sono richieste possibili, ma ambedue hanno trovato risposta piu` volte nel forum (anche se in forme leggermente diverse).

    if(document.NOMEFORM.NOMECAMPO.length > 1) {
    for(var i=0; i<document.NOMEFORM.NOMECAMPO.length; i++) {
    ....disabilitare quello che ha type=='hidden';
    }
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Originariamente inviato da Mich_
    Sono richieste possibili, ma ambedue hanno trovato risposta piu` volte nel forum (anche se in forme leggermente diverse).

    if(document.NOMEFORM.NOMECAMPO.length > 1) {
    for(var i=0; i<document.NOMEFORM.NOMECAMPO.length; i++) {
    ....disabilitare quello che ha type=='hidden';
    }
    }
    No, siceramente ho fatto più ricerche ma non ho trovato nulla.

    Nello script che hai postato devo conoscere a priori il nome del campo da ricercare. Ma se non fosse così? Cioè se volessi trovare all'interno del form i due campi dal nome uguale e disabilitare quello hidden?
    www.sergiogandrus.it
    Il mio blog sull'informatica

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    la cosa si fa complessa ...
    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;
    }
    
    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;
    }
    Da chiamare con
    <form ... onsubmit="return trovadoppi(this);">

    Se c'e` un'altra funzione nell'onsubmit:
    <form ... onsubmit="return (trovadoppi(this)) ? altrafunzione() : false;">
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Grazie, sembra funzionare.
    Non avrei insistito se non fosse stato molto importante.

    Adesso non invia il form se ci sono campi uguali?
    Il punto interrogativo tra le due funzioni onsubmit è un vero punto interrogativo o è un carattere non interpretato?
    www.sergiogandrus.it
    Il mio blog sull'informatica

  7. #7
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    è un operatore ternario.

    codice:
    if (condizione) ? faiquestoseèvera : faiquestoseèfalsa
    Vuoi aiutare la riforestazione responsabile?

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

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.