jQuery possiede la caratteristica vincente di rendere semplice anche la gestione degli eventi. Supponiamo di avere una textarea di un form in cui non vogliamo che gli utenti inseriscano tag HTML. Possiamo sostituire al volo tutte le ricorrenze dei caratteri < e > con le rispettive entità HTML. Come? Abbinando un'azione ad ogni pressione di un tasto. Vediamo i dettagli.
Scriviamo il seguente codice jQuery:
$(function() {
$('#text').keyup(function(event) {
var char = event.keyCode;
var value = $(this).val();
if(char == 188) {
$(this).val(value.replace(/<+/g, '<'));
}
if(value.indexOf('>') != -1) {
$(this).val(value.replace(/>+/g, '>'));
}
});
});
Per il segno di minore usiamo il valore numerico della proprietà keyCode
dell'oggetto Event
. Tuttavia, dato che il segno di maggiore viene realizzato con una combinazione di tasti, dobbiamo usare un approccio basato questa volta sul riconoscimento delle stringhe. In tutti i due casi usiamo un'espressione regolare con il metodo replace()
per sostituire il carattere incriminato cercando nell'intera stringa che compone la proprietà value
della textarea (restituita dal metodo val()
).
Potete visionare l'esempio finale in questa pagina.