Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    Idea su standar per la validazione di un form

    Ciao a tutti,
    vi illustro il problema e spero possa risultare utile a qualcun'altro.

    Sto cercando di implementare dei controlli che possano essere validi per qualsiasi form del mio pannello di controllo.
    I controlli sintattici, saranno solo di tipo testo, numerico, email e select, di seguito cerco di spiegare cosa vorrei fare.

    Avendo come base questo input

    <form name="form" id="form" class="form" onsubmit="return validate(this)" method="post">

    <label for="campo02">Nome:</label>
    <input type="text" name="campo02_text" id="campo02_text"/>

    <label for="campo03">telefono:</label>
    <input type="text" name="campo03_numerico" id="campo03_numerico" />

    <label for="campo04">E-mail:</label>
    <input type="text" name="campo04_email" id="campo04_email" />
    Ho identificato gli input come
    Ordine_tipo
    in maniera tale che nella funzione validate possa recupera l'ordine e il tipo ed effettuari quindi i controlli in seguenza e con la relativa funzione di validazione sintattica.
    Questo dovrebbe permettere di aggiungere, nelle nuove form, nuovi campi senza modificare la funzione validate

    Secondo voi, e' un metodo che può funzionare oppure ce ne sono altri e piu' efficaci.
    Spero di essere stato abbastanza chiaro

    Grazie in anticipo per le risposte.
    ciao

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Secondo me si, anche perché non vedo altre ipotesi
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da cavicchiandrea
    Secondo me si, anche perché non vedo altre ipotesi
    Ok, grazie.
    Appena termino uno schema funzionante, lo posto qui.

    Se avete altre idee, chiaramente sono ben accette

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    suggerisco di usare l'attributo "accept" nei campi di input per specificare il tipo di controllo da eseguire invece di legarlo all'id
    Vuoi aiutare la riforestazione responsabile?

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da fcaldera
    suggerisco di usare l'attributo "accept" nei campi di input per specificare il tipo di controllo da eseguire invece di legarlo all'id
    Puoi spiegarti meglio?

    Cercando ho trovato questo link, ma non ho capito come applicare il controllo ai singoli campi, ovvero i campi hanno tipologie differenti di dati.

    http://www.w3schools.com/TAGS/att_form_accept.asp

    Grazie

    Edit
    Vi posto quello che ho sviluppato finora.
    Non sarà proprio il massimo, ma la mia esperienza in Javascript è alquanto limitata e quindi potrei aver scritto molte stupidaggini.
    Nel caso, qualsiasi commento e critica è, chiaramente, ben accetta

    Form
    Codice PHP:
    <form name="form" id="form" class="form" onsubmit="return validate(this)" method="post">
        <label for="campo00">Gender:</label>
        <select name="campo[0]" id="campo00_select">
            <option value="">-- Scegli un valore -- </option>
            <?
            
    while($var_tabepara01 $tabepara01->fetch_assoc())
            {
               echo 
    "<option value=".$var_tabepara01['codi_ruol'].">".$var_tabepara01['desc_ruol']."</option>";
            }
            
    ?>
        </select>


        <label for="campo01">Nome:</label>
        <input type="text" name="campo[1]" id="campo01_nume"/>

        <label for="campo02">Cognome:</label>
        <input type="text" name="campo[2]" id="campo02_text" />

        <label for="campo03">E-mail:</label>
        <input type="textmail" name="campo[3]" id="campo03_emai" />

        <input type="submit" value="Submit" class="submit" />
    </form>
    Parte Js
    1) manca la funzione di visualizzazione dell'errore inlineMsg
    2) nel caso di "select" controllo solo se non è stato selezionato il valore (anche perchè altri controllo non hanno senso...)
    3) Mancano tutte le funzioni "base"

    Codice PHP:
    function validate(form) {
        var 
    nameRegex    = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
        var emailRegex   = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
        var messageRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'
    .*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);

        for( var i = 0, max = form.elements.length; i < max; i++ ){ 
            var campo_value = document.form.elements['campo['+i+']'].value;
            var campo_id = document.form.elements['campo['+i+']'].id;

            var tipo   = Mid(campo_id,8,campo_id.length);

            alert('prova...'+tipo);

            if(campo_value == "") {
                inlineMsg(campo_id,'Inserire un valore',2);
                return false;
            }


            switch(tipo) {
                case "
    text":
                  if(!campo_value.match(nameRegex)) {
                    inlineMsg(campo_id,'Inserire un nome valido',2);
                    return false;
                  }
                  
                  break;

                case "
    email":
                  if(!campo_value.match(emailRegex)){
                    inlineMsg(campo_id,'Inserire indirizzo di mail valido',2);
                    return false;
                  }
                  
                  break;

                case "
    nume":
                  if (isNaN(campo_value)) {
                    inlineMsg(campo_id,'Inserire solo valori numerici',2);
                    return false;
                  }
                  
                  break;
            }
        }

    Da un primo test, sembra che funziona.
    Che ve ne pare?

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    http://www.fabriziocalderan.it/code/javascript/hform/

    considera che l'ho scritto 3 anni fa, quindi non è un codice da prendere ad esempio
    non ha particolari ottimizzazioni ed ha diverse limitazioni

    (lo sto ripensando come plugin per jQuery/HTML5)

    serve solo a farti vedere come ho usato l'attributo accept
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.