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

    validare form con scelta multipla

    Ciao a tutti, come posso fare per validare un form dove c'e' una scelta multipla?

    codice:
    <form action="send.php" method="POST" name="form1" OnSubmit="return checkData(this)">
    <table border="1" align="center">
    <tr>
    <td colspan="2" align="center">Seleziona gli utenti</td>
    </tr>
    <tr>
    <td>Utenti</td>
    <td>Gruppi</td>
    </tr>
    <tr>
    <td>
    <select name="destuser[]" size="20" multiple="multiple">
    <option value="user1">User 1</option>
    <option value="user2">User 2</option>
    <option value="user3">User 3</option>
    <option value="user4">User 4</option>
    <option value="user5">User 5</option>
    <option value="user6">User 6</option>
    <option value="user7">User 7</option>
    <option value="user8">User 8</option>
    </select>
    </td>
    <td>
    <select name="destgroup" size="20">
    <option value="group1">Group 1</option>
    <option value="group2">Group 2</option>
    <option value="group3">Group 3</option>
    <option value="group4">Group 4</option>
    <option value="group5">Group 5</option>
    <option value="group6">Group 6</option>
    <option value="group7">Group 7</option>
    <option value="group8">Group 8</option>
    <option value="group9"><?=$idFax?></option>
    </select>
    </td>
    </tr>
    <tr>
    <td colspan="2" align="center">
    <input type="hidden" name="idFax" value="<?=$fax?>">
    <input type="submit" value="Invia">
    Devo controllare che l'utente selezioni almeno uno o piu' utenti o un gruppo o entrambi.

    Ho provato con questa funzione ma non funziona:
    codice:
    function checkData()
    {
            var group = document.form1.destgroup.value;
            var correct = true;
    
            var segnato=false;
    
            for(var k=0;k<document.form1.elements['destuser[]'].length;k++){
                    if (document.form1.elements['destuser'][k].checked) segnato=true;
            }
    
            if(!segnato){
                    alert('Attenzione!.Non è stato selezionato alcun elemento');
                    //document.form1.elements['destuser'][0].Focus();
                    return false;
            }
    
            if (group == "") {
                    alert("Inserisci il tuo cognome !");
                    return false;
            }
    
            return true;
    }
    Grazie.
    Linux User #332385

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    C'e` un po' di confusione con le select.
    Per la verifica devi controllare il vettore options:
    codice:
    function checkData()
    {
      var desgr = document.form1.destgroup;
      var desus = document.form1.elements['destuser[]'];
    
      var group = desgr.options[desgr.selectedIndex].value;
      var correct = true;
    
      var segnato=false;
    
      for(var k=0;k<desus.length;k++){
        if (desus.options[k].checked) {
          segnato=true;
          break;
      }
    
      if(!segnato){
        alert('Attenzione!.Non è stato selezionato alcun elemento');
        //desus.focus(); //attenzione alle minuscole
        return false;
      }
    
      if (group == "") {
        alert("Inserisci il tuo cognome !");
        desgr.focus();
        return false;
      }
    
      return true;
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Originariamente inviato da Mich_
    C'e` un po' di confusione con le select.
    Per la verifica devi controllare il vettore options:
    codice:
    function checkData()
    {
      var desgr = document.form1.destgroup;
      var desus = document.form1.elements['destuser[]'];
    
      var group = desgr.options[desgr.selectedIndex].value;
      var correct = true;
    
      var segnato=false;
    
      for(var k=0;k<desus.length;k++){
        if (desus.options[k].checked) {
          segnato=true;
          break;
      }
    
      if(!segnato){
        alert('Attenzione!.Non è stato selezionato alcun elemento');
        //desus.focus(); //attenzione alle minuscole
        return false;
      }
    
      if (group == "") {
        alert("Inserisci il tuo cognome !");
        desgr.focus();
        return false;
      }
    
      return true;
    }

    Ho provato ma non mi funziona, mi restituisce il seguente errore:
    codice:
    Errore: uncaught exception: [Exception... "Index or size is
     negative or greater than the allowed amount"  code: "1" 
    nsresult: "0x80530001 (NS_ERROR_DOM_INDEX_SIZE_ERR)"  
    location: "http://192.168.0.108/phptest/smista.php Line: 18"]
    La linea che segna e' questa:

    var group = desgr.options[desgr.selectedIndex].value;
    Linux User #332385

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Prova ad aggiungere una opzione prima delle altre:
    <option selected value=""></option>

    Oppure controlla il numero di riga nel browser (dato che usi PHP, il numero di righe che arriva al browser e` diverso dal sorgente).

    Perche` l'errore potrebbe essre che si deve usare la proprieta` .selected non .checked per le select
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Originariamente inviato da pigna
    Ho provato ma non mi funziona, mi restituisce il seguente errore:
    codice:
    Errore: uncaught exception: [Exception... "Index or size is 
    negative or greater than the allowed amount"  code: "1" 
    nsresult: "0x80530001 (NS_ERROR_DOM_INDEX_SIZE_ERR)"  
    location: "http://192.168.0.108/phptest/smista.php Line: 18"]
    La linea che segna e' questa:

    var group = desgr.options[desgr.selectedIndex].value;
    Linux User #332385

  6. #6
    Ho provato a riscrivere la pagina in html ed ad aggiungere
    codice:
    <option selected value=""></option>
    ma continua a a darmi l'errore sulla riga

    var group = desgr.options[desgr.selectedIndex].value;

    Linux User #332385

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.