Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82

    convalidazione form non funzionante

    Salve a tutti ,
    ho la seguente funziona che effettua una convalida di alcuni form,
    (a seconda di quello che le passo nel parametro), ma non mi effettua
    tutti i controlli.

    codice:
    function CheckCampi(f) {	
    	alert("ci sono 1")
    	if (document.gallery && f == document.gallery){
    		if (f.file.value == ""){
    			alert("Attenzione! Inserire il file da caricare!");
    			f.file.focus();
    			return(false)
    		}	
    	}
    	alert("ci sono 2")
    	if (f.titolo.value == ""){
    		alert("Attenzione! Inserire il titolo");
    		f.titolo.focus();
    		return(false)	
    	}
    	alert("ci sono 3")	
    	if (f.testo.value == ""){
    		alert("Attenzione! Inserire il testo");
    		f.testo.focus();
    		return(false)
    	}
    return(true)
    }
    Ho messo quelle alert è ho constatato che apre solo la prima ?? e non entra nella prima if.

    Come è possibile???

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    codice:
    	if (document.gallery && f == document.gallery){
    		if (f.file.value == ""){

    scommetto che quello in grassetto è un campo tipo input type="file"... nel qual caso hai usato un nome riservato "file" per chiamare quell'input.

    cambia il nome di quell'input (con un nome non riservato)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    errore da principiante

    Grazie mille per l'aiuto

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    Scusate nuovamente.

    ora l'ho modificata così

    codice:
    function CheckCampi(f) {	
    	if (f.titolo.value == ""){
    		alert("Attenzione! Inserire il titolo");
    		f.titolo.focus();
    		return(false)	
    	}
    	if (f.t.value == ""){
    		alert("Attenzione! Inserire il testo");			              f.t.focus();
    		return(false)
    	}
    	if (document.gallery && f == document.gallery){
    		if (f.f.value == ""){
    			alert("Attenzione! Inserire il file da caricare!");
    			f.f.focus();
    			return(false)
    		}	
    	}
    
    return(true)
    }
    quando il form non è "gallery", quindi effettua i primi due controlli solamente, al secondo entra se il campo è vuoto (t è una textarea) ma effettua ugualmente il submit, invece dovrebbe uscire e basta.
    La funziona la richiamo così:
    codice:
    <input type="submit" value="inserisci" onClick="return CheckCampi(this.form);">

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    non si scrive return(false) ma
    return false;

    analogamente anche return true;

    mi domando comunque che senso ha chiamare in modo equivoco i vari campi "t" oppure "f" (f.f.focus()) quando

    1) potresti usare nomi più descrittivi
    2) assegnare degli id ai vari campi e accedervi con document.getElementById() (modo approvato dal w3c)


    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    Prendo i tuoi consigli e li faccio miei.

    Grazie mille

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    però il problema del return sussiste

    continua a fare il submit nonostante entra nella if

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    assicurati che il tag form sia qlcs del genere

    codice:
    <form... onsubmit="return checkCampi(this)">
    in modo che la validazione sia controllata all'evento onsubmit del form

    altrimenti prova a vedere se c'è qualche errore con la console Javascript di firefox
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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 © 2026 vBulletin Solutions, Inc. All rights reserved.