Visualizzazione dei risultati da 1 a 10 su 10

Discussione: validare form

  1. #1
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313

    validare form

    ciao, come si fa a fare in modo che se un utente mi mette in uno o piu campi del form dei tag html viene un bel messaggio che gli dice di toglierli?!

    questi campi li passo poi a uno script php e non mi va di dover passare i valori dei campi in altre variabili filtrandoli con strip_tags (toglie html)... dato che sono tanti campi mi piacerebbe bloccare il caso direttamente prima di inviarli al server...

    si puo?
    alcool: la causa e la soluzione di tutti i problemi

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Devi fare un filtro direttamente in JS.

    Lo si fa con le RegExp.

    Supponendo di avere una stringa str che puo` contenere dei tag HTML, che necessariamente iniziano con < e finiscono con >, devi usare una cosa di questo tipo:

    str = str.replace(/\<.+?\>/g, "");

    dentro la parentesi:
    slash backslash minore punto piu` puntodidomanda bachslash maggiore slash gi virgola (spazio) virgolette virgolette
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    ok.. fin qui ci sono... quindi come lo faccio sto filtro? devo metterlo accanto a ogni campo? oppure c'é qlc tipo "onSubmit" parte il controllo per tutti i campi?

    non é che sono un esperto in js...

    ps: grazie per la risposta
    alcool: la causa e la soluzione di tutti i problemi

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Bisogna prima fare la pagina HTML, poi il JS.

    Si fa come con tutti i controlli di form in JS: la cosa migliore e` mettere la chimata alla funzione all'evento submit del form:
    <form ... onsubmit="return FUNZIONE(this);">

    dove FUNZIONE() ritorna true per inviare il form e false per fermare la spedizione.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    scusami ma non sono veramente capace.

    ho capito che devo fare il form. --> ce l'ho già.
    dove ho:
    codice:
    <form action="<? $PHP_SELF ?>" name="invia" method="post">
    devo aggiungere onSubmit="return blabla">

    probabilmente nell'header devo mettere la funzione quindi:

    codice:
    <script>
    blablabla
    str = str.replace(/\<.+?\>/g, ""); 
    return..blabla
    </script>
    però non sono capace.. mi dai una mano a farlo?
    come faccio a farli controllare tutti i campi?
    in giro ne ho trovato uno gia fatto ma era tot diverso da come dici te e non funzionava per niente!!!
    alcool: la causa e la soluzione di tutti i problemi

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ti ripeto. Bisogna prima fare il form.

    Non ti possiamo aiutare se non sappiamo cosa vuoi fare.

    Se non conosciamo la tua pagina, e non sappiamo con esattezza che controlli vuoi fare possiamo solo indicarti di studiare il JS, magari sui tutorial di questo sito.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    questo é il mio form (tagliato):

    codice:
    <form name="registerCustomForm" method="post" action="<? echo $PHP_SELF; ?>">
    <input name="cstmFname" type="text" size="25" maxlength="25" value="">
    <input name="cstmName" type="text" size="25" maxlength="25" value="">
    <input type="submit" name="registerCustom" value="invia">
    ho molti campi testo e il form richiama la stessa pagina che lo contiene. questa pagina inserisce i dati nel database, sempre se i campi richiesti siano inseriti.

    io voglio uno script che blocchi qualsiasi tentativo di inserire tag html nel database --> quindi deve eliminare i tags o bloccare l'invio.

    questo é quello di cui ho bisogno... purtroppo non ho tempo di imparare il js da zero.. mi spiace
    alcool: la causa e la soluzione di tutti i problemi

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Certo che se metti codice ASP, e` piu` difficile capire.

    Comunque presumo che nell'action ci sia una pagina ASP.

    <form name="registerCustomForm" method="post" action="qualcosa.asp" onsubmit="return toglitag(this);">

    Lo script associato a questo controllo potrebbe essere:
    codice:
        // inseriscii nomi dei campi che devi pulire
    var lista = new Array("cstmFname", "cstmName", ....);
    
    function toglitag(ff) {
      for (var i=0; i<lista.length; i++) {
        var cc = ff.elements[lista[i]];
        var str = cc.value;
        str = str.replace(/\<.+?\>/g, "");
        // qui posto per eventuali altri controlli su str
        cc.value = str;
      }
      return true;
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    grazie millle... ora provo a vedere se funziona...
    alcool: la causa e la soluzione di tutti i problemi

  10. #10
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    funziona benissimo.. grazie ancora
    alcool: la causa e la soluzione di tutti i problemi

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.