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

    Problema validazione select

    Salve a tutti,
    ho un form con n select( non so quante saranno perchè dipendono da un interrogazione di un database)

    esempio (qua sono due ma potrebbero essere di più)

    codice:
    <form name="post" >
    <select name="lista[]">
       <option value="0">Opzione Zero</option>
       <option value="1">Opzione Uno</option>
       <option value="2">Opzione Due</option>
       
    </select> 
    
    <select name="lista[]">
       <option value="0">Opzione Zero</option>
       <option value="1">Opzione Uno</option>
       <option value="2">Opzione Due</option>
       
    </select> 
    
    <input type="submit"  value="invia" />
    </form>

    Dovrei validare il form con javascritp per controllare che almeno una delle select sia stata selezionata con un valore diverso da 0, solo non so come fare, in quanto
    codice:
    var x = document.post.lista.options[document.post.lista.selectedIndex].value;
    non sembra essere adatto a questo tipo di select.

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    intanto per javascript il nome e' "lista[]", non "lista"

    poi se e' piu' di una e' in una collezione e non puoi far altro che ciclare per la sua lunghezza e valutare che almeno una di esse abbia un selectedIndex diverso da 0
    codice:
    var sl = document.post.elements['lista[]'];
    var procedi=false;
    if(sl.length){
      for(var k=0,l=sl.length;k<l;++k){
        if(sl[k].selectedIndex>0){procedi=true;break}
      }
    }
    else {
      if(sl.selectedIndex>0) procedi=true;
    }
    ciao

  3. #3
    funziona perfettamente, ti ringrazio

  4. #4
    Ho avuto un piccola problema,
    quando c'era una sola select mi dava problemi, anche scegliendo un numero maggiore di 0 non mi faceva andare avanti

    ho aggirato il problema così per chi interessasse

    codice:
    <script language="javascript">
    function verifica(){
    
    var sl = document.post.elements[\'stanze[]\'];
    var procedi=false;
    if (sl[0][0] == undefined){
    if(sl.selectedIndex>0) procedi=true;
    }
    else {
    
    if(sl.length){
      for(var k=0,l=sl.length;k<l;++k){
        if(sl[k].selectedIndex>0){procedi=true;break}
      }
    }
    }
    
    error="Scegli almeno una camera\n";
    if(procedi==false){
    alert(error)
    return false;
    }
    
    }
    </script>

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.