Nell’utilizzare sistemi di commenti o post, a volte diventa necessario mettere un limite al numero di caratteri che è possibile inserire nella textarea dedicata, per evitare la copiatura di articoli o l’inserimento di commenti che diventano più lunghi dell’articolo stesso.
Questo esempio è utilie a tale scopo: in pochi passi si configura un contatore javascript che blocca l’inserimento dei caratteri all’interno della textarea controllata una volta che viene superato il limite imposto. L’esempio è scaricabile qui.
In un file javascript .js salviamo il seguente codice:
function getObject(obj) {
var theObj;
if(document.all) {
if(typeof obj=="string") {
return document.all(obj);
} else {
return obj.style;
}
}
if(document.getElementById) {
if(typeof obj=="string") {
return document.getElementById(obj);
} else {
return obj.style;
}
}
return null;
}
function Count(entrada,salida,texto,caracteres) {
var entradaObj=getObject(entrada);
var salidaObj=getObject(salida);
var longitud=caracteres - entradaObj.value.length;
if(longitud <= 0) {
longitud=0;
texto='<span class="disable"> '+texto+' </span>';
entradaObj.value=entradaObj.value.substr(0,caracteres);
}
salidaObj.innerHTML = texto.replace("{CHAR}",longitud);
}
A questo punto non ci resta che richiamare con il solito tag ‘<script src”..”></string>’ il file javacript appena creata, ed infine configurare la texarea che vogliamo controllare:
<textarea id="text" name="text" onkeyup="Count('text','counter','{CHAR} caratteri rimanenti',2000);" maxlength="2000"> </textarea><br /> <span id="counter" class="minitext"><i>2000 caratteri rimanenti</i></span>
Il valore “2000″ è configurabile, e rappresenta il massimo numero di caratteri che è possibile inserire: lo “span” invece è dove verrà visualizzato il numero di caratteri rimanenti, calcolati a mano a mano che vengno inseriti.
Ciao.. Ho una domandina..
E se volessi applicare lo stesso controllo a diverse textarea nello stesso form?
Ho provato a cambiare un pò di cose ma nulla..
Grazie
Benvenuto Gianluca!!
In realtà, tutto ciò che devi fare per risolvere il tuo problemino è cambiare gli id della textarea e del counter. Ho inserito un file txt sul quale puoi leggere il codice che dovresti utilizzare per la seconda textarea, text2 nell’esempio che trovi qui.
Spero sia tutto chiaro, ad ogni modo…siamo qui!!
A presto
Perfect…
Ottimo!!! Grazie. Non cambiavo anche l’id counter pensando che era una variabile che doveva restare fissa.
Grazie mille.
A presto!
Ciao ragazzi! Io ho provato ma a me non funziona il counter, rimane sempre a max 400 caratteri (caratteri che ho modificato dal numero originale) e non mi blocca i caratteri in eccesso. Ho cambiato nome al text area. Posto il codice:
10 caratteri rimanenti
Grazie in anticipo!
Non mi ha fatto postare il codice!
Ciao Daniele,
per postare il codice sul blog utilizza questo parser:
http://blogcrowds.com/resources/parse_html.php
è sufficiente inserire il codice all’interno della textarea a disposizione e cliccare sul tasto “Parse” per avere la conversione necessaria alla visualizzazione del codice nei commenti!