Visualizzazione dei risultati da 1 a 4 su 4

Discussione: checkbox

  1. #1

    checkbox

    'giorno a tutti,

    ho questa funzione

    codice:
    function bbox(bb){
    if(bb=='yes'){
    	
     var e=document.getElementById('form_1').elements;
     
     for(i=0;i<e.length;i++) if(e[i].type=='checkbox' && e[i].checked) document.getElementById('form_1').submit();return true;
     alert("Selezionare almeno una voce.");document.getElementById('form_1').singolo.focus();
     return false;
    
    }else{
    document.getElementById('form_1').submit();	
    }
    
    }
    che mi serve per controllare che almeno uno dei checkbox sia spuntato, il prolema è che funziona a metà...

    se lascio return true; nel caso nessun campo fosse spuntato, non succede nulla, nel caso lo fosse prosegue con il submit.
    Se elimino il return true; funziona il controllo se nessun checkbox ha la spunta, ma mi apre l'alert anche in caso vi sia una spunta, procedendo poi con il submit, ma ho quell'apertura insensata dell'alert, mi date una mano ?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di lake86
    Registrato dal
    Dec 2006
    Messaggi
    705
    A occhio e se ho capito scrit mancano parentesi a if ....


    function bbox(bb){
    if(bb=='yes'){
    var e=document.getElementById('form_1').elements;
    for(i=0;i<e.length;i++)
    if(e[i].type=='checkbox' && e[i].checked) {
    document.getElementById('form_1').submit();
    return true;
    }
    alert("Selezionare almeno una voce.");document.getElementById('form_1').singolo. focus();
    return false;

    }else{
    document.getElementById('form_1').submit();
    }

    }

  3. #3
    Originariamente inviato da lake86
    A occhio e se ho capito scrit mancano parentesi a if ....


    function bbox(bb){
    if(bb=='yes'){
    var e=document.getElementById('form_1').elements;
    for(i=0;i<e.length;i++)
    if(e[i].type=='checkbox' && e[i].checked) {
    document.getElementById('form_1').submit();
    return true;
    }
    alert("Selezionare almeno una voce.");document.getElementById('form_1').singolo. focus();
    return false;

    }else{
    document.getElementById('form_1').submit();
    }

    }
    Veramente ne mancano 4 di graffe infatti bisogna escludere le istruzioni di alert e return false dal ciclo:

    function bbox(bb){
    if(bb=='yes'){
    var e=document.getElementById('form_1').elements;
    for(i=0;i<e.length;i++) {
    if(e[i].type=='checkbox' && e[i].checked) {
    document.getElementById('form_1').submit();
    return true;
    }
    }

    alert("Selezionare almeno una voce.");document.getElementById('form_1').singolo. focus();
    return false;

    }else{
    document.getElementById('form_1').submit();
    }

    altrimenti se alla prima iterazione il l'espressione dell'if interno torna false vengono eseguite le altre due istruzioni.

  4. #4
    Le graffe si possonoanche omettere, comunque non cambia nulla.

    Thanks

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.