Visualizzazione dei risultati da 1 a 3 su 3

Discussione: caratteri consentiti

  1. #1

    caratteri consentiti

    Ho bisogno di uno script che controlli i caratteri inseriti tramite form, in modo che quelli consentiti siano quelli esplicitamente elencati:

    sono riuscito a tirar fuori questo:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="Javascript">
    function verifica(ritorno) {
    var paragone = 'abcdefghilmnopqrstuvzABCDEFGHILMNOPQRSTUVZ;:,.012 3456789!?.()"@àèéìòù'+"'";
    var lungh_paragone = paragone.length;
    var valore = document.getElementById('TESTO1').value;
    var lungh_valore = document.getElementById('TESTO1').value.length;
    var somma = 0;
    // document.write(valore);
    // document.write(paragone);
    for(i=0; i<=lungh_valore-1; i++) {
    // document.write(valore.substr(i, 1));
    for(j=0; j<=lungh_paragone-1; j++) {
    // document.write(paragone.substr(j, 1));
    if (paragone.substr(j, 1) == valore.substr(i, 1)) {
    // document.write("<h1>"+valore.substr(i, 1)+"</h1>");
    somma++;
    }
    }
    }
    alert("somma: "+somma);
    alert("lungh_valore: "+lungh_valore);
    if (somma.value==lungh_valore.value) {
    return true;
    }
    else if (somma.value!=lungh_valore.value) {
    return false;
    }
    }
    </script>
    </head>
    <body>
    <form name="form1" method="post" action="prova2.php" onsubmit="return verifica(this);">
    <table width="400" border="1" align="center">
    <tr>
    <td align="center" width="200">TESTO1</td>
    <td align="center" width="200"><input type="text" name="TESTO1" value="prova"></td>
    </tr>
    <tr>
    <td colspan="2" align="center"><input type="submit" name="Submit" value="Invia"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    La mia ignoranza in fatto di javascript non mi permette di capire perchè (probabilmente è errata la sintassi) l'if in colorazione blu mi dà sempre risultato positivo anche cambiando il valore della variabile paragone? :master:
    Prima o poi anch'io vi insegnerò qualcosa

  2. #2
    Sono fiero di questo codice perchè è il mio primo javascript anche se un pò scopiazzato quà e là.

    Ho un'unica perplessità:

    così com'è non dovrebbe effettuare controlli su entrambi i campi (anche se già il primo dà errore) e restituire un alert che comprende entrambi i campi? Perchè se entrambi non sono corretti restituisce solo il primo?

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="Javascript">
    function verifica(formobj) {
    var paragone = 'mnopqrstuvzABCDEFGHILMNOPQRSTUVZ;:,.013456789!?.( )"@àèéìòù'+"'";
    var lungh_paragone = paragone.length;
    var fieldRequired = Array("TESTO1", "TESTO2");
    var fieldDescription = Array("TESTO1", "TESTO2");
    var alertMsg = "Compila i seguenti campi:\n";
    var l_Msg = alertMsg.length;
    for (var k=0; k<=fieldRequired.length; k++) {
    var valore = document.getElementById(fieldRequired[k]).value;
    var lungh_valore = document.getElementById(fieldRequired[k]).value.length;
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    var somma = 0;
    for(i=0; i<=lungh_valore-1; i++) { //document.write(valore.substr(i, 1));
    for(j=0; j<=lungh_paragone-1; j++) { //document.write(paragone.substr(j, 1));
    if (paragone.substr(j, 1) == valore.substr(i, 1)) { //document.write("<h1>"+valore.substr(i, 1)+"</h1>");
    somma++;
    }
    }
    }
    if ((somma) != (lungh_valore)) {
    alertMsg += " - " + fieldDescription[k] + "\n";
    break;
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    }
    if (alertMsg.length == l_Msg) {
    return true;
    } else {
    alert(alertMsg);
    return false;
    }
    }
    </script>
    </head>
    <body>
    <form name="form1" method="post" action="prova5.php" onsubmit="return verifica(this);">
    <table width="400" border="1" align="center">
    <tr>
    <td align="center" width="200">TESTO1</td>
    <td align="center" width="200"><input type="text" name="TESTO1" value="abcde"></td>
    </tr>
    <tr>
    <td align="center" width="200">TESTO2</td>
    <td align="center" width="200"><input type="text" name="TESTO2" value="fghil"></td>
    </tr>
    <tr>
    <td colspan="2" align="center"><input type="submit" name="Submit" value="Invia"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    Prima o poi anch'io vi insegnerò qualcosa

  3. #3
    C'ho studiato sopra, forse a qualcuno può servire :

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="Javascript">
    function verifica(formobj) {
    var minuscole = 'abcdefghijklmnopqrstuvwyz';
    var maiuscole = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    var numeri = '0123456789';
    var caratteri = ' ,.;:@#?!€%&/()'+"'";
    var paragone = minuscole + maiuscole + numeri + caratteri;
    var lungh_paragone = paragone.length;
    var fieldRequired = Array("TESTO1", "TESTO2", "TESTO3");
    var fieldDescription = Array("Cognome", "Nome", "Ragione Sociale");
    var alertMsg = "I seguenti campi contengono caratteri non consentiti dall'amministratore:\n";
    var l_Msg = alertMsg.length;
    for (var i = 0; i < fieldRequired.length; i++) {
    var obj = formobj.elements[fieldRequired[i]];
    var valore = document.getElementById(fieldRequired[i]).value;
    var lungh_valore = valore.length;
    if (obj) {
    var somma = 0;
    for(k=0; k<=lungh_valore-1; k++) { //document.write(valore.substr(i, 1));
    for(j=0; j<=lungh_paragone-1; j++) { //document.write(paragone.substr(j, 1));
    if (paragone.substr(j, 1) == valore.substr(k, 1)) { //document.write("<h1>"+valore.substr(i, 1)+"</h1>");
    somma++;
    }
    }
    }
    if ((somma) != (lungh_valore)) {
    alertMsg += " - " + fieldDescription[i] + "\n";
    }
    }
    }
    if (alertMsg.length == l_Msg) {
    return true;
    } else {
    alertMsg += "Eliminare caratteri che non siano nel seguente elenco:\n";
    alertMsg += minuscole+"\n";
    alertMsg += maiuscole+"\n";
    alertMsg += numeri+"\n";
    alertMsg += caratteri+"\n";
    alert(alertMsg);
    return false;
    }
    }
    </script>
    </head>
    <body>
    <form name="form1" method="post" action="pagina2.htm" onsubmit="return verifica(this);">
    <table width="400" border="1" align="center">
    <tr>
    <td align="center" width="200">Cognome</td>
    <td align="center" width="200"><input type="text" name="TESTO1" value=""></td>
    </tr>
    <tr>
    <td align="center" width="200">Nome</td>
    <td align="center" width="200"><input type="text" name="TESTO2" value=""></td>
    </tr>
    <tr>
    <td align="center" width="200">Ragione Sociale</td>
    <td align="center" width="200"><input type="text" name="TESTO3" value=""></td>
    </tr>
    <tr>
    <td colspan="2" align="center"><input type="submit" name="Submit" value="Invia"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    Prima o poi anch'io vi insegnerò qualcosa

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.