You are here: irt.org | FAQ | JavaScript | Form | 6 | Q690 [ previous next ]
Try:
<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"><!-- function replace(string,text,by) { // Replaces text with by in string var strLength = string.length, txtLength = text.length; if ((strLength == 0) || (txtLength == 0)) return string; var i = string.indexOf(text); if ((!i) && (text != string.substring(0,txtLength))) return string; if (i == -1) return string; var newstr = string.substring(0,i) + by; if (i+txtLength < strLength) newstr += replace(string.substring(i+txtLength,strLength),text,by); return newstr; } //--></SCRIPT> </HEAD> <BODY> <FORM NAME="myForm"> <TEXTAREA COLS="20" ROWS="10" onChange="this.value=replace(this.value,'x','y')"></TEXTAREA> </FORM> </BODY> </HTML>
If you attempt to change the value whilst the user is typing using onKeyUp="this.value=replace(this.value,'x','y')" then you'll find that the text caret insertion point jumps to the front of the text field - causing confusion.