bloccare la digitazione parole troppo lunghe

  • Creatore Discussione Creatore Discussione guidox
  • Data di inizio Data di inizio

guidox

Nuovo Utente
3 Apr 2009
8
0
0
Ciao a tutti, come da titolo volevo chiedervi un aiuto, ho bisogno di limitare l'inserimento di parole troppo lunghe nel form. utilizzo access, e in fase dilettura diventa difficoltoso,praticamente impossibile mantenere il layout,ho trovato uno script del sig.luca ruggiero, ma sinceramente non riesco a farlo funzionare, posso postare il codice?
 
ciao e grazie, ti posto il codice:
ho già uno script per le parole non consetite.
Grazie mille per la risposta!


<script type="text/javascript">
new UvumiTextarea({
selector:'textarea.withCounter',
maxChar:60
});
new UvumiTextarea({
selector:'textarea.withoutCounter',
maxChar:60
});
</script>

<script type="text/javascript">
badWords=[
"casa",
"mela",
"pera",
"viagra",
]

function test(obj){
//obj=document.getElementById("story2")

currentText=obj.value

for(var i=0;i<badWords.length;i++){
re=new RegExp(badWords,"gi")

if(re.test(currentText)){
temp=""

for(var j=0;j<badWords.length;j++){temp+="*"}

currentText=currentText.replace(re,temp)
obj.value=currentText
}

}

}

</script>
<font color="#5533cc" size="4" style="font-style:italic; font-family:Arial Rounded MT Bold; word-spacing: 3px; text-align:left"
><%
function indirizzo()
indirizzo = "Il tuo indirizzo I.P. è : " & Request.ServerVariables("REMOTE_ADDR")
end function

response.write indirizzo()
%></font>
</head>
<div id="main">
<form method="POST" action="inserisci.asp" style="width: 400px">
&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp; Nome&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text"name="nome" size="20">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</p>
&nbsp;&nbsp;&nbsp;Messaggio
<textarea id="story2" class="withCounter" onkeyup="test(this)" onchange="test(this)" align="left"
input type="text"name="messaggi" size="20" style="width: 270px; height:73px;"></textarea>&nbsp;
<br />
<input type="submit" value="Invia"name="x" style="width: 57px; height: 24px;"
onclick="Controllo()">&nbsp;&nbsp;&nbsp;&nbsp; </p>
</form>
<script type="text/javascript">
function Controllo()
{
var testo = document.modulo.testo.value;
if (testo == "" || testo == "undefined" || testo.charAt(0) == " ")
{
alert("Inserisci un testo");
}
else
{
// VARIABILI PER:
// IL CICLO
// PER LA GESTIONE DEGLI ERRORI
// PER IL MASSIMO NUMERO DI CARATTERI CONSECUTIVI CONSENTITI
var i = 0;
var errore = 0;
var max_lunghezza = 5;

// DIVIDO IL VALORE DEL CAMPO DEL FORM IN UN ARRAY DI STRINGA
//PER DIVIDERE USO IL CARATTERE SPAZIO VUOTO
var s = testo.split(" ");

// ESEGUO UN CICLO PER CONTROLLARE TUTTI I VETTORI DELL'ARRAY CHE HO CREATO
while (i<s.length && errore == 0)
{

// VALORIZZO LA VARIABILE errore A SECONDA DELLA LUNGHEZZA DEI VETTORI
s.length > max_lunghezza ? errore = 1 : errore = 0;

// SE errore == 1 VUOL DIRE CHE C'E' UNA PAROLA TROPPO LUNGA
if (errore == 1)
{
alert("Hai inserito una parola troppo lunga");
}
i++; // INCREMENTO IL CONTATORE DEL CICLO
}

// SE NEL CICLO NON TROVO VETTORI TROPPO LUNGHI L'ESITO E' POSITIVO
if (errore == 0)
{
alert("OK");
}

}
}
</script>
<body>

</div>


</body>

</html>
 
Hai tirato su un mezzo casino nello script :)

Innanzitutto, il filtro per le parolacce prova a gestirlo in ASP:

https://www.mrw.it/asp/articoli/filtro-parolacce_55.html

In secondo luogo, al form specifica solo il nome:

<form name="modulo">

Poi, il bottone deve essere di tipo button, non submit, se vuoi usare un onclick lato client, quindi:

<input type="submit" value="Invia" name="x" style="width: 57px; height: 24px;" onclick="Controllo()">

Pulisci un po il codice della textarea:

<textarea id="story2" class="withCounter" onkeyup="test(this)" onchange="test(this)" align="left" name="messaggi" size="20" style="width: 270px; height:73px;"></textarea>

Userai, in fine, una funzione Javascript per assegnare il method e l'action al form, tipo:

<script type="text/javascript">
function Controllo()
{
var testo = document.modulo.messaggi.value;
if (testo == "" || testo == "undefined" || testo.charAt(0) == " ")
{
alert("Inserisci un testo");
}
else
{
var i = 0;
var errore = 0;
var max_lunghezza = 5;
var s = testo.split(" ");
while (i<s.length && errore == 0)
{
s.length > max_lunghezza ? errore = 1 : errore = 0;
if (errore == 1)
{
alert("Hai inserito una parola troppo lunga");
}
i++;
}
if (errore == 0)
{
document.modulo.method = "post";
document.modulo.action = "inserisci.asp";
document.modulo.submit();
}
}
}
</script>

Ho modificato un po la funzione del mio articolo per le tue esigenze.

In conclusione, Guido: sai programmare? Penso di conoscere la risposta, ma la domanda a cui non troverò mai risposta è perchè nessuno studia e si spratichisce leggendo ed a fare esempi semplici, atti a fare esperienza, e si lancia direttamente a fare cose più grandi del proprio attuale livello di conoscenza :)
 

Discussioni simili