Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    161

    impedire invio form se...

    Ho un form che vorrei che non si inviasse se non è stata selezionata almeno una checkbox...
    un po' come il required sugli altri campi input... solo che non posso inserirlo direttamente sulla checkbox in quanto non è unica (appunto ce ne sono varie e deve essere selezionata alemno una)

    Hommesso un onclick al submit che richiama la seguente funzione che verifica se qualche checkbox è stato selezionato
    codice:
    function controllo () {
         var Testo= new String('');
         for (i=0; i<document.scheda.elements.length; ++i)
         if(document.scheda.elements[i].type=='checkbox' && document.scheda.elements[i].checked)
              Testo='c';
         if(Testo=='') {alert('You must select at least one player'); false}
         else true;
    }
    ma dopo aver chiuso il messaggio di errore il form mi si invia ugualmente... come posso fermarlo?

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Su onclick inserisci un return della funzione:
    codice:
    onclick="return controllo();"
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    161
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Su onclick inserisci un return della funzione:
    l'avevo già messo, ma mi invia il form lo stesso

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se usi un submit come "pulsante" meglio fare il controllo sul onsubmit="return controllo();" usando onclick blocchi l'evento click non il submit (invio) del forum che viene eseguito comunque.
    Altrimenti per usare onclick sul tasto submit devi bloccare evento submit immediatamente onsubmit="return false;" e forzare l'invio del form da funzione
    codice:
    function controllo (){
         varTesto=newString('');
         for(i=0; i<document.scheda.elements.length;++i)
         if(document.scheda.elements[i].type=='checkbox'&& document.scheda.elements[i].checked)
              Testo='c';
         if(Testo==''){
    
    alert('You must select at least one player'); 
    return false;}
         else{document.scheda.submit()};}
    Ma è una forzatura e come soluzione va usata per validi motivi meglio eseguire il controllo da onsubmit o usare un tasto button con onclick
    Ultima modifica di cavicchiandrea; 22-06-2014 a 18:00
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    161
    sempre preziosi i tuoi consigli, grazie

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.