Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    66

    come invertire la logica

    ho una funzione che fa precisamente l'opposto di quello che voglio fare, come posso invertire la logica o che funzione posso usare per fare quello che mi interessa?

    allora io ho diversi radiobutton che fungono da checkbox e vorrei che per poter inviare il form, sia vistato almeno un radiobutton per gruppo e nel caso negativo la funzione mi bloccasse l'invio e mi facesse uscire un alert diverso in base al gruppo di radiobutton non vistato.

    questo è quello che ho scritto io, ma come ho già detto fa precisamente l'opposto di quello che vorrei, ossia mi fa uscire l'alert e mi blocca l'invio quando io visto uno dei radiobutton del gruppo.

    codice:
    <SCRIPT Language="Javascript"> 
    <!-- 
    
    function verifica() 
    {
    abtrad = document.domanda.abtrad
    for (var i=0; i<abtrad.length; i++)
    if (abtrad[i].checked )
    {
    alert("radio"); return false; }
    
    abttv = document.domanda.abttv
    for (var i=0; i<abttv.length; i++)
    if (abttv[i].checked)
    {
    alert("tv"); return false; 
    }
    }
    
    // --> 
    </SCRIPT>

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    66
    credo di aver risolto, ma se qualcuno pensa che sia sbagliato è pregato di avvertimi grazie, gli sarò molto grato

    codice:
    <SCRIPT Language="Javascript"> 
    <!-- 
    
    function verifica() 
    {
    abtrad = document.domanda.abtrad
    abttv = document.domanda.abttv
    
    for (var i=0; i<abtrad.length; i++)
    for (var i=0; i<abttv.length; i++)
    
    if (!abtrad[i].checked)
    {
    alert("radio"); return false; }
    
    else if
    (!abttv[i].checked)
    {
    alert("tv"); return false; 
    }
    else 
    { return true
    }
    }
    
    // --> 
    </SCRIPT>

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se pensi di aver risolto con quello script allora non ho capito il problema

    Comunque c'e' qualcosa di molto simile a cio' che (presumo) tu cerchi qui: http://forum.html.it/forum/showthrea...hreadid=986580

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    66
    si hai ragione ma li non ero riuscito a dare un alert personalizzato al gruppo di radiobutton mancante, con questo codice mi sembra che funzioni....almeno credo

    ciao e grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    66
    hai dopiamente ragione br1, mi sono incartato nello stesso errore di prima, ma come faccio a dare un alert personalizzato in base al gruppo di radiobutton mancante?

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    function verifica() {
    ritorno=true;
    msg = "";
    c = document.myfrm.auto;
    r = false;
    for (var i=0;i<c.length;i++) {r=r||c[i].checked};
    if (!r) msg="manca gruppo 1";
    ritorno = ritorno&&r;
    
    c = document.myfrm.moto;
    r = false;
    for (var i=0;i<c.length;i++) {r=r||c[i].checked};
    if (!r) msg="manca gruppo 2";
    ritorno = ritorno&&r;
    
    if (!ritorno) alert(msg);
    
    return ritorno;
    }
    </script>
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    66
    grazie mille!!!!!!!!
    adesso è perfetto.

    una curiosita, come mai parte a controllare dal gruppo 2 mancante e non dal gruppo 1?
    cioè se io lascio cerco di inviare subito il form senza dare risposta mi dice prima che manca il gruppo 2.

    è solo una curiosità, il codice per me va benissimo così come me lo hai postato.

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    A dire la verita' li controlla entrambi... ma il secondo messaggio sovrascrive il primo

    Cambia:
    codice:
    function verifica() {
    ritorno=true;
    msg = "";
    c = document.myfrm.auto;
    r = false;
    for (var i=0;i<c.length;i++) {r=r||c[i].checked};
    if (!r) msg+="manca gruppo 1\n"; 
    ritorno = ritorno&&r;
    
    c = document.myfrm.moto;
    r = false;
    for (var i=0;i<c.length;i++) {r=r||c[i].checked};
    if (!r) msg+="manca gruppo 2\n"; 
    ritorno = ritorno&&r;
    
    if (!ritorno) alert(msg);
    
    return ritorno;
    }
    </script>
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    66
    ok grazie mille!!!!!!

    se posso ne approfitto ancora per un altro controllo, la domanda è simile a quella di prima, ma il controllo deve essere fatto su tantissimi gruppi di radiobutton, per semplificare, ho una domanda poniamo con 30 affermazioni e per ognuna bisogna dare un voto di preferenza da 1 a 7 attraverso appunto dei radiobutton.
    ogni gruppo di radiobutton identifica una affermazione differente.
    bisogna rispondere a tutte le affermazioni.
    per semplificare ogni gruppo di radiobutton ha un name con uguale desinenza e poi un numero ad esempio cred1, cred2, ecc fino cred30.
    ora c'è una funzione semplificata che mi faccia un controllo su tutte le affermazioni tipo quella di prima e che poi mi faccia uscire eventualmente un alert che prende atuomaticamente il numero della affermazione mancante?

    spero di essermi spiegato bene.

    tutto questo in pratica per evitare di dover scrivere tante volte lo stesso codice e andare a modificare i messaggi e le i vari document.myfrm.elements

    grazie ancora e scusa del disturbo

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    In questi termini e' pure piu' semplice
    codice:
    function verifica() {
      ritorno = true;
      msg = "";
      for (var k=1;k<=30;k++) {
        c = document.myfrm.elements["cred"+k];
        r = false;
        for (var i=0;i<c.length;i++) {r=r||c[i].checked};
        if (!r) msg+="manca gruppo "+k+"\n"; 
        ritorno = ritorno&&r;
      }
      if (!ritorno) alert(msg);
      return ritorno;
    }
    </script>
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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