Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743

    [JS] alert per opzioni non selezionate

    utilizzo una funzione come questa
    codice:
    function valida_form(nome_form) {
    if (nome_form.nome.value == "") {alert("inserire il nome");return false}
    else if (nome_form.cognome.value == "") {alert("inserire il cognome");return false}
    else if (nome_form.opzione.value == "") {alert("selezionare le opzioni");return false}
    }
    per controllare che siano stati compilati degli elementi di un form
    Codice PHP:
    <form action=\"index.php\" method=\"POST\" onsubmit=\"return valida_form(this)\">

    nome: <input type=\"text\" name=\"nome\" value=\"\">
    cognome: <input type=\"text\" name=\"cognome\" value=\"\">




    si<input type=\"radio\" name=\"opzione[1]\" value=\"
    $variabile_1\">
    no<input type=\"radio\" name=\"opzione[1]\" value=\"\">opzione 1




    si<input type=\"radio\" name=\"opzione[2]\" value=\"
    $variabile_2\">
    no<input type=\"radio\" name=\"opzione[2]\" value=\"\">opzione 2



    <input type=\"submit\" value=\"invia\">
    </form> 
    il mio problema è opzione[1], opzione[2]... che corrispondono a dei pulsanti di opzione ma non è determinato quanti siano in quanto estratti da un db (questo codice è solo una prova) ed anche l'indice dell'array non è determinato in quanto è una variabile corrispondente all'id dell'opzione.

    come faccio ad intercettare che una qualsiasi delle opzioni non è stata selezionata facendo comparire l'alert con un messaggio in comune?
    Errare humanum est, perseverare ovest

  2. #2
    non sarebbe meglio impostare di default l'opzione selected per una delle due voci di ogni gruppo, in modo tale da evitare i controlli?

    ciao

  3. #3
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    magari, ma è un'imposizione dall'alto e devo mettere una pezza momentanea lato client ad un modulo da rifare

    le opzioni sono dei supplementi a pagamento per dei viaggi se metto no, magari nessuno le prenota, se metto si, quelli che non se ne accorgono poi protestano, quindi rimane da non mettere niente e far selezionare qualcosa per forza
    Errare humanum est, perseverare ovest

  4. #4
    allora prova così:

    codice:
    function controllo(f) {
     var e=f.elements;
     var n=0;
     for (var i=0; i<e.length; i++) if (e[i].type=="radio" && e[i].name.indexOf('opzione')!=-1) n++;
     n=n/2;
     for (var j=1; j<=n; j++) 
      if (!(e['opzione[j][0]'].selected || e['opzione[j][1]'].selected)) {
       alert("Effettuare la scelta per la voce "+j);
       return false;
      }
     return true;
    }
    fammi sapere se funziona.

  5. #5
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    ho provato ad integrarlo così
    codice:
    <script>
    function valida_form(nome_form) {
    if (nome_form.nome.value == \"\") {alert(\"inserire il nome\");return false}
    else if (nome_form.cognome.value == \"\") {alert(\"inserire il cognome\");return false}
    
    var e=nome_form.elements;
     var n=0;
     for (var i=0; i<e.length; i++) if (e[i].type==\"radio\" && e[i].name.indexOf('opzione')!=-1) n++;
     n=n/2;
     for (var j=1; j<=n; j++) 
      if (!(e['opzione[j][0]'].selected || e['opzione[j][1]'].selected)) {
       alert(\"Effettuare la scelta per la voce \"+j);
       return false;
      }
     return true;
    
    }
    </script>
    ma non funziona, probabilmente sbaglio qualcosa
    Errare humanum est, perseverare ovest

  6. #6
    perdonami, ho fatto qualche errore.
    prova così:

    codice:
    function valida_form(f) {
     var e=f.elements;
     var n=0;
     for (var i=0; i<e.length; i++) if (e[i].type=="radio" && e[i].name.indexOf('opzione')!=-1) n++;
     n=n/2;
     for (var j=1; j<=n; j++)
      if (!(e['opzione['+j+']'][0].checked || e['opzione['+j+']'][1].checked)) {
       alert("Effettuare la scelta per la voce "+j+".");
       return false;
      }
     return true;
    }

  7. #7
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    WOW !!

    non ho parole, funziona che è una meraviglia !!!

    mi hai tolto una rogna enorme,
    non so di dove sei, ma se passi in friuli fammi un fischio
    che ti offro una cena

    mille grazie
    Errare humanum est, perseverare ovest

  8. #8
    Originariamente inviato da carlo2002
    WOW !!

    non ho parole, funziona che è una meraviglia !!!

    mi hai tolto una rogna enorme,
    non so di dove sei, ma se passi in friuli fammi un fischio
    che ti offro una cena

    mille grazie :ciauz:
    è un piacere, se non ci si aiuta tra di noi saremmo alla frutta. :)
    quando hai bisogno di qualsiasi cosa, non hai altro che da chiedere.

    credo che il Friuli sia abbastanza fuori mano, essendo lucano: grazie lo stesso per il gentile pensiero. :)

    alla prossima e buona serata. ;)

  9. #9
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743

    codice:
    function valida_form(nome_form) {
    if (nome_form.nome.value == "") {alert("inserire il nome");return false}
    else if (nome_form.cognome.value == "") {alert("inserire il cognome");return false}
    
    var e=nome_form.elements;
     var n=0;
     for (var i=0; i<e.length; i++) if (e[i].type=="radio" && e[i].name.indexOf('opzione')!=-1) n++;
     n=n/2;
     for (var j=1; j<=n; j++)
      if (!(e['opzione['+j+']'][0].checked || e['opzione['+j+']'][1].checked)) {
       alert("Selezionare se si gradiscono o no eventuali supplementi non inclusi nella quota di iscrizione");
       return false;
      }
     return true;
    
    }
    si verifica un piccolo problemino, funziona finchè l'indice dell'array opzione è un numero singolo, ma non funziona se è formato da più cifre...
    Errare humanum est, perseverare ovest

  10. #10
    a me funziona correttamente, non saprei che dirti...

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.