Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245

    Validazione di checkboxes multiple

    Ciao a tutti,
    ho un form con una lista di campi di tipo checkbox, creata dinamicamente con una query, quindi non so a priori il numero di checkboxes che ho.
    Devo controllare che l'utente abbia selezionato almeno una checkbox prima di continuare e ho creato una funzione javascript che funziona perfettamente tranno quando il risultato della mia query è 1 solo record, quindi quando ho una sola checkbox. Perché?!?

    codice:
    function Controlla(ff){
    var intCounter = 0;
    			var myCheckImages = ff.elements['ImageCode[]'];
    			for (var i=0; i<myCheckImages.length; i++) {
    				if(ff.elements['ImageCode[i]'].checked) { 
    					intCounter++;
    				}
    			}
    			
    			if(intCounter == 0){
    				alert('Selezionare almeno un check')
    				return false
    			}
    			else return true
    		}

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    Up

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    Ok, per chi come me non fosse molto pratico di Javascript, posto la soluzione...perchè non si sa mai...Il fatto che non funzioni con un elemento è dovuto al fatto che non è un array, ma un singolo checkbox: in quel caso ho fatto un controllo sulla lunghezza dell'array (se è nulla allora ho un solo elemento e faccio il controllo solo su quello...altrimenti faccio tutti i controlli come sopra)

    codice:
    function checkbox_checker(myForm) {
    			var blnChecked = false;
    			var myImages = document.ImageSelection.elements['ImageCode'];
    			
    			// --- UNA SOLA IMMAGINE
    			if (myImages.length == null) {
    				if(document.ImageSelection.ImageCode.checked == false) {
    					alert("E' necessario selezionare almeno un'immagine per creare un nuovo ordine");
    					return false;
    				} else {
    					return true;
    				}
    			
    			// --- ARRAY DI IMMAGINI
    			} else {
    				//alert(myImages.length);
    				for (intCounter = 0; intCounter < document.forms['ImageSelection'].elements['ImageCode'].length; intCounter++) {
    					//alert(document.ImageSelection.elements['ImageCode[]'][intCounter].value);
    					if(document.ImageSelection.elements['ImageCode'][intCounter].checked == 1) {
    						blnChecked = true;
    					}
    				}
    				if(blnChecked == false) {
    					alert("E' necessario selezionare almeno un'immagine per creare un nuovo ordine");
    					return false;
    				} else {
    					return true;
    				}
    			}
    		}

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.