Beim schreiben schon colorieren

NTDY

Erfahrenes Mitglied
In einem Formular eines Gästebuchs möchte ich, dass wenn der User schon beim Schreiben des Eintrags Schimpfwörter (Bsp. e) schreibt, diese, nachdem er das Wort durch Leerzeichen abgeschlossen hat, noch im Forumlar rot (oder andersfarbig) markiert werden. Kennt jmd. eine "Realtime" JS Funktion, die geschriebenen Text noch beim Schreiben erkennt?


Andreas
 
Hallo...

das Problem besteht eigentlich nicht darin, ein bestimmtes Wort zu finden, sondern dieses zu markieren....

denn abgesehen von einem IE-Feature, welches für deinen Zweck nicht einsetzbar ist, wüsste ich nicht, wie man
Text innerhalb eines Eingabefeldes unterschiedlich formatieren könnte.

Im IE ist es jedoch wenigstens möglich, das gefundene Wort so zu markieren, wie man es als Benutzer tun würde....:
Code:
<head>
<title>:P</title>
<script type="text/javascript">
<!--
badwords=new Array('bla','blubb','blablubb');

function find_badwords(obj)
{
for(i=0;i<badwords.length;++i)
    {
    pattern=eval('/(^|\\s)'+badwords[i]+'(\\s)/i');
    if(obj.value.match(pattern))
        {
        alert('Das Wort\n"'+badwords[i]+'"\nist nicht erwünscht');
        obj.focus();
        if(document.all&&!window.opera)
            {
            rng=obj.createTextRange();
            rng.findText(badwords[i]);
            rng.expand('Word');
            rng.select();
            break;
            }
        }
    }
}

//-->
</script>
</head>
<body>
<form>
<textarea onkeyup="find_badwords(this)"rows="3"cols="40"></textarea>
</form>
</body>
</html>
Im Array "badwords[]" werden dabei die unerwünschten Wörter notiert.

Die Funktion "find_badwords()", welche jeweils beim Loslassen einer Taste im <textarea> aufgerufen wird,
sucht dann nach diesen Wörtern und gibt beim Treffer eine Meldung aus. Im IE wird das Wort dann noch markiert.

Test
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück