Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50

    Validare stringhe e numeri in un form

    Ciao a tutti,
    vi spiego in breve il mio problema.
    Vorrei validare i campi di un form, in particolare inserimento di numeri e stringhe.
    Posto il codice affinchè possa essere più chiaro:

    [cod]
    <form name="modulo" method="post" action="ins_prova.php" >
    <table width="80%" border="0">
    <tr>
    <td width="340">Nome: </td>
    <td width="355"><input type="text" name="nome" size="20" onfocus="this.setAttribute('autocomplete', 'off');" />
    </td>
    </tr>
    <tr>
    <td>Telefono:</td>
    <td><input type="text" name="num" size="20" onfocus="this.setAttribute('autocomplete', 'off');" onkeyup="ControllaInt(this)" onchange="this.value=this.value.replace(/\,/,'.')"/> </td>
    </tr>
    <tr>
    <td></td>
    <td>


    </p>



    <input type="button" value="inserisci">

    </p></td>
    </tr>
    </table>
    </form>

    [/cod]

    Poichè i campi del form che devo realizzare richiede il controllo di molti parametri (numerici o stringhe) vorrei creare due funzioni generiche che mi permettano di controllare i campi.
    Per quanto riguarda l'inserimento di numeri ho scritto il seguente:

    [cod]
    <script type="text/javascript">
    <!--//
    function ControllaInt(val) {
    var value = val.value;
    if (value.length && !/^[0-9]+(,|\.)?([0-9]+)?$/.test(value)) {
    alert("Sono ammessi solo numeri!");
    val.value = value.substr(0, value.length-1);
    };
    };

    //-->
    </script>
    [/cod]

    Sapreste darmi qualche suggerimento per poter realizzare una funzione generale (non dipendente dal NAME per intenderci) per validare l'inserimento di stringhe?

    Grazie

  2. #2
    ci sono librerie che hanno già cose simile pronte all'uso:

    http://mootools.net/docs/more/Forms/FormValidator
    I DON'T Double Click!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50
    Grazie per la segnalazione, ma sono abbastanza complesse, cerco qualcosa di più semplice da utilizzare.
    Eventulamente potresti portarmi un esempio di come applicarle nel mio codice?

  4. #4
    Originariamente inviato da mirk83
    Grazie per la segnalazione, ma sono abbastanza complesse, cerco qualcosa di più semplice da utilizzare.
    Eventulamente potresti portarmi un esempio di come applicarle nel mio codice?
    io uso questa funzione che sfrutta le espressioni regolari

    function contr_input(valore, espressione_regolare, flag_messaggio)
    {

    flag_messaggio=typeof flag_messaggio=='undefined'?false:flag_messaggio;

    if (valore=='' && espressione_regolare=='')
    {
    return false;}
    else
    {
    contr = espressione_regolare; /* /^\d{7}/*/
    //alert (valore+' '+contr);
    if (!contr.test(valore))
    {
    if (flag_messaggio==true) alert ("valore errato per questo campo!");
    return false;
    }
    else {
    //alert('ok');
    return true;
    }
    }
    }

    si utlizza così ad esempio per controllare che siano inseriti solo numeri
    contr_input(this.value, /^[0-9])$/, false))


    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50
    grazie per l'aiuto. Ma adesso come lo inserisco nel mio codice?
    Scusami ma sono un neofita

  6. #6
    Originariamente inviato da mirk83
    grazie per l'aiuto. Ma adesso come lo inserisco nel mio codice?
    Scusami ma sono un neofita
    <input type="text" name="num" size="20" onfocus="this.setAttribute('autocomplete', 'off');" onkeyup="ControllaInt(this)" onchange="contr_input(this.value, /^[0-9])$/, false));"/>

    è comunque sempre meglio usare cose già fatte con jquery o mootools come suggeritoti precedentemente

    ciao

  7. #7
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    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.