caratteri in una text area

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao a tutti
ho utilizzato il js dell'articolo di lica "limitare i caratteri in una text area" in quanto il testo scritto vine visualizzato (e modificato) in un div di dimensioni limitate con owerflow hidden.
ora però mi sorge un dubbio
se in fase di immsiione io scrivo


i caratteri sono 12 e sin qui tutto bene
ma se scrivo
c
i
a
o
s
o
n
o
i
o

i caratteri sono sempre 12 ma il testo esce dal div e non si vede.
esiste il modo non solo per controllare i caratteri ma anche i ritorni a capo?
:byebye:
 
Puoi inibire l'accapo filtrando la sequenza di escape:

\n

Però fammi capire: i dati li registri sul database? Se si, preferisci registrarli direttamente in formato corretto o ti basta stamparli a video in modo corretto?

In ogni caso il filtro pupi farlo direttamente lato server.
 
ciao
i dati li registri sul database? Se si, preferisci registrarli direttamente in formato corretto o ti basta stamparli a video in modo corretto?

si i dati li registro in un db, ma mi basta che siano stampati a video in modo corretto.
ti specifico meglio.
ho calcolato (circa) che nel div ci entrino un massimo di 300 caratteri (l'ho riempito e contati i caratteri visualizzati), in tale spazio il proprietario del sito ne può inserire un massimo di 240 (es data e categoria aggiornata), gli ho detto di non superare comunque le sei righe.
volevo (se possibile) contare i caratteri e i vari ritorno a capo e fare
(pseudo codice)

if num_car > 250 or fine_linea > 6....alert
oppure (dato che per ogni linea ho un massimo di 24 caratteri)

conto i caratteri immessi

if fine_linea allora caratteri_immessi=caratteri_immessi+24

non so se mi sono spiegato
 
ciao luca
due cose
1. si /n anche in php (però lato servere e quindi curo e non prevengo)
2. vedo che anche tu qualche volta passi (o quasi) la domenica al computer

veniamo al sodo.
se hai la pazienza (di giobbe) di leggere, premetto la mia ignoranza di js, mi rifaccio a quello che sapevo di programmazione nel lontano 80.


la funzione Conta() "capisce" che ho inserito un carattere nel campo nota_IT, e scrive nel campo contaF1: 1 poi 2 poi 3..... sino a 240 e poi alert
da quello che capisco la parte

document.form1.nota_IT.value.length;

trasmette la lunghezza della stringa che sto scrivendo, aggiornandola ad ogni battuta
quindi se faccio

var lunghezza_attuale=document.form1.nota_IT.value.length; //ho in variabile la lughezza nel momento in cui sto scrivendo
//setto una variabile di comodo previa verifica lunghezza_attuale > 1

var primo = lunghezza_attuale-1; e provo a leggere il carattere

var carattere =document.form1.nota_IT.value.substr(primo, lunghezza_attuale); //prelevo (?) il carattere
(o substr(primo); )??

//e qui non saprei proprio come fare, verifico che carattere sia o no = \n, esiste funzione chr()? perchè in tal caso potrei mettere "if chr(carattere)=13....2
//se = \n potrei fare var massimo = massimo - 24;


<script language="javascript">
function Conta()
{
var massimo = 240;
document.form1.contaF1.value = document.form1.nota_IT.value.length;
// qui tutta la pappardella di cui sopra

if (document.form1.nota_IT.value.length > massimo)
{
alert("Massimo " + massimo + " caratteri o 6 righe!");
document.form1.nota_IT.value = document.form1.nota_IT.value.substr(0, massimo);
document.form1.contaF1.value = massimo;
}
}
</script>
<!-- eccetera -->
</head>
<body>


<form name0"form1"...........
<textarea name="nota_IT" cols="25" rows="6" id="nota_IT" onkeyup="Conta()"></textarea>
<input name="contaF1" type="text" value="0" size="3" maxlength="3" readonly>

<!-- eccetera -->

so che non è perfetto in quanto se scrivo "supercalifragislisticespiralidoso" (33 caratteri) mi occupa più di una riga e sballa tutto

:beer:
 
Ultima modifica:

Discussioni simili