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

    [JS] funzione di invio form

    Giorno a tutti

    ho una funzione che viene richiamata al OnSubmit di un form
    se la funzione ha un return true il form viene spedito se ha un return false no.

    Fin qui sembra tutto a posto e funzionare tutto.

    Nel form ho un radio button e prima che il form sia spedito devo controllare che l'utente abbia selezionato il valore giusto.
    Ho aggiunto questo controllo nella mia funzione:
    codice:
    	// Controllo la privacy
    	var checkprivacy = false;
    	for (i = 0; i < document.filo.Privacy.length; i++){
    		if (document.filo.Privacy[i].checked){
    			if (document.filo.Privacy[i].value == 'si'){
    				checkprivacy = true;
    			}
    		}
    	}
    	
    	if (checkprivacy){
    		return true;
    	} else{
    		window.location.href='#up'
    		document.all.message.innerHTML='<p class="in">Attenzione.
    Il modulo non è stato compilato correttamente. Accettare l\'informativa sulla privacy.</p>';
    		return false;
    	}
    dove filo è il nome del form a Privacy è il nome del radio button.
    solo che il form viene spedito lo stesso...
    ho notato inserendo qualche alert nel controllo
    che non appena incontra questo document.filo.Privacy.length esce con true.... non capisco...

  2. #2
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    ma di campo Privacy ce n'è uno solo, no?
    perchè fare un ciclo? non è mica un array
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Nota: la sintassi document.all e` proprietaria IE; per cui potresti avere problemi con altri borwser.

    Comunque la struttura dello script sembra a posto, a parte quel window.location.href='#up' che potrebbe resettare il form in qualche condizione (credo sarebbe preferibile un window.scrollTo(0,0);).

    Io preferirei comunque scrivere al posto di tutto il loop:
    if (document.filo.Privacy[0].checked) return true;
    se il campo radio si` e` il primo della collezione; 1 se e` il secondo.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.