Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Validazione Form

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    51

    Validazione Form

    Ciao a tutti,
    da poco mi sto cimentando ad usare javascript e mi sono imbatutto in uno strano comportamento.
    Il codice che riporto di seguito dovrebbe validare un form, ma stranamente il controllo_estensione non funziona come dovrebbe, questo perche anche quando viene inserito un file che non è un JPG il form dopo aver visualizzato il messaggio d'errore procede con la registrazione.

    Codice PHP:
    <form method="post" name="form1" enctype="multipart/form-data" class="form1" onSubmit="return validazioneModulo(this)" action="<?php echo $editFormAction?>">
    Codice PHP:
    <script language="javascript" type="text/javascript">
    function 
    validazioneModulo(form1){
        if(
    form1.Nome.value==""){
            
    alert("Attenzione!! Hai dimenticato d'inserire il nome.");
            return 
    false;
        }
        if(
    form1.Username.value==""){
            
    alert("Attenzione!! Hai dimenticato d'inserire il nome utente.");
            return 
    false;
        }
        else if(
    form1.Pass.value!=form1.Pass2.value){
            
    alert("Attenzione!! Le password inserite non sono identiche.");
            return 
    false;
        }
        else
            
    controlla_estensione(document.getElementById('foto').value);
        
    }
    function 
    get_estensione(path) {
        
    posizione_punto=path.lastIndexOf(".");
        
    lunghezza_stringa=path.length;
        
    estensione=path.substring(posizione_punto+1,lunghezza_stringa);
        return 
    estensione;
    }

    function 
    controlla_estensione(path){
        if(
    get_estensione(path)!="JPG"){
            
    alert("Il file selezionato non è una foto.");
            return 
    false;
        }
        else
            return 
    true;
    }
    </script> 
    Come mai ho questo comportamento?

  2. #2
    fai dei test...

    nella funzione
    controlla_estensione metti un allert che ti dica cosa contiene il path..

    function controlla_estensione(path){
    alert(path)
    if(get_estensione(path)!="JPG"){
    alert("Il file selezionato non è una foto.");
    return false;
    }
    else
    return true;
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    51
    Gia fatto,
    il controllo funziona, quello che non viene considerato male è il return.

  4. #4
    codice:
    <script language="javascript" type="text/javascript">
    function validazioneModulo(form1){
        if(form1.Nome.value==""){
            alert("Attenzione!! Hai dimenticato d'inserire il nome.");
            return false;
        }
        if(form1.Username.value==""){
            alert("Attenzione!! Hai dimenticato d'inserire il nome utente.");
            return false;
        }
        else if(form1.Pass.value!=form1.Pass2.value){
            alert("Attenzione!! Le password inserite non sono identiche.");
            return false;
        }
        else
            return controlla_estensione(document.getElementById('foto').value);
        
    }
    function get_estensione(path) {
        posizione_punto=path.lastIndexOf(".");
        lunghezza_stringa=path.length;
        estensione=path.substring(posizione_punto+1,lunghezza_stringa);
        return estensione;
    }
    
    function controlla_estensione(path){
        if(get_estensione(path)!="JPG"){
            alert("Il file selezionato non è una foto.");
            return false;
        }
        else
            return true;
    }
    </script>
    Non ritorni il risultato della controlla_estensione ....

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  5. #5
    ho visto ora....

    estensione=path.substring(posizione_punto+1,lunghe zza_stringa);


    non è sbagliato??
    Io la farei così..

    estensione=path.substr(posizione_punto+1,(lunghezz a_stringa - posizione_punto));

    No?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    51
    Originariamente inviato da homezappa
    codice:
    <script language="javascript" type="text/javascript">
    function validazioneModulo(form1){
        if(form1.Nome.value==""){
            alert("Attenzione!! Hai dimenticato d'inserire il nome.");
            return false;
        }
        if(form1.Username.value==""){
            alert("Attenzione!! Hai dimenticato d'inserire il nome utente.");
            return false;
        }
        else if(form1.Pass.value!=form1.Pass2.value){
            alert("Attenzione!! Le password inserite non sono identiche.");
            return false;
        }
        else
            return controlla_estensione(document.getElementById('foto').value);
        
    }
    function get_estensione(path) {
        posizione_punto=path.lastIndexOf(".");
        lunghezza_stringa=path.length;
        estensione=path.substring(posizione_punto+1,lunghezza_stringa);
        return estensione;
    }
    
    function controlla_estensione(path){
        if(get_estensione(path)!="JPG"){
            alert("Il file selezionato non è una foto.");
            return false;
        }
        else
            return true;
    }
    </script>
    Non ritorni il risultato della controlla_estensione ....

    HTH
    Zappa
    Grazie per la dritta.
    Adesso funziona tutto perfettamente.

  7. #7
    Addendum, per controllare se l'estensione &egrave; .jpg ma anche .JPG o .Jpg ... :
    codice:
    function controlla_estensione(path){
        if(! /\.(jpg)|(gif)|(png)$/i.test(path)){
            alert("Il file selezionato non è una foto.");
            return false;
        }
        else
            return true;
    }
    cos&igrave; controlla estensioni jpg, gif e png

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

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.