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

    [Javascript] Comportamento inatteso.

    Ciao a tutti,
    ho fatto una funzione in javascript che controlla che almeno un elemento di una lista di checkbox sia stato selezionato.

    Se gli elementi della lista sono in numero superiore a 1 funziona perfettamente, mentre se la lista ha un solo elemento questo non ne vuole sapere di validare il form (continua a dirmi che l'unico elemento disponibile non è stato selezionato).

    Inutile aggiungere che sto impazzendo..

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <HTML>
    <HEAD>
    	<TITLE>CF - MailingList 1.0</TITLE>
    	<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    	<link rel=stylesheet href="../style/admin.css" type="text/css">
    	<STYLE type="text/css">
    		#lista{
    			margin:20px 30px;
    		}
    	</STYLE>
    	<script type="text/javascript">
    	<!--
    	function formControl(){
    		var selected = false;
    		for (var i=0;i<document.modulo_2.elements['lista_utenti[]'].length;i++){
    			if ((selected) || (document.modulo_2.elements['lista_utenti[]'][i].checked)){
    				selected = true;
    			}
    		}
    		if (!selected){
    			alert("Devi selezionare almeno un utente da eliminare.");
    			return false;
    		}
    
    		return true;
    	}
    	//-->
    	</script>
    
    </HEAD>
    <BODY>
    	<DIV id="page">
    		<DIV id="head">
    			<H1>Gestione Utenti</H1>
    			<DIV id="menu">
    				home
    				<SPAN style="margin-right:20px;">utenti</SPAN>
    
    				mailing-list
    				mail
    				logout
    			</DIV>
    		</DIV>
    
    		<DIV id="content">
    			[Aggiungi utente]
    
    
    			<DIV id="lista"><FORM name="modulo_1" method="POST" action="user.php">
    Visualizza solo gli iscritti alla lista: <SELECT name="id_mailing" style="width:150px;">
    <OPTION value="all">Tutte
    <OPTION value="2" >formaggi
    <OPTION value="1" >giochi
    </SELECT>
    <INPUT type="submit" value="OK"></FORM>
    </DIV>
    			<FORM name="modulo_2" method="POST" action="edit.php?action=del_u">
    			<TABLE>
    <TR><TD></TD><TD>Mail</TD><TD>Mailing-List</TD><TD>Stato</TD><TD class="dx">Data di registrazione</TD></TR>
    
    <TR><TD><INPUT name="lista_utenti[]" type="checkbox" value="39,1"></TD><TD>daniele.vigano@creativefactory.it</TD><TD>giochi</TD><TD></TD><TD class="dx">00/00/0000</TD></TR>
    </TABLE>
    				<INPUT type="submit" value="Cancella" onClick="return formControl();" style="margin:10px 30px;">
    			</FORM>
    		</DIV>
    
    		<DIV id="footer"><DIV id="footer_sx"><DIV id="footer_dx">CF - MailingList 1.0 © CreativeFactory.it</DIV></DIV></DIV>
    	</DIV>
    
    </BODY>
    </HTML>

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se e' uno solo non e' in array
    codice:
    ...
    var lng=document.modulo_2.elements['lista_utenti[]'].length
    if(lng>0){
      for (var i=0;i<lng;i++){
        if ((selected) || (document.modulo_2.elements['lista_utenti[]'][i].checked)){
          selected = true;
        }  
      }
    }
    else {
      if(document.modulo_2.elements['lista_utenti[]'].checked){
        selected=true;
      }
    }
    if (!selected){
    			alert("Devi selezionare almeno un utente da eliminare.");
    			return false;
    		}
    
    		return true;
    ciao

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.