Form textarea

I found a script that is perfect for my need but it is written for forms textareas and I can seem to get it to work textareas that are not wrapped in form.

<script>function insertAtCursor(sTag,eTag)
{
var obj = document.form.message;
var strPos;
var ie_strPos;
var oSel;
obj.focus();

strPos += sTag.length + eTag.length;
ie_strPos += sTag.length + eTag.length;

if (document.selection && document.selection.createRange) { // Internet Explorer
oSel = document.selection.createRange();
if (oSel.parentElement() == obj) {
oSel.text = sTag + oSel.text + eTag;
ie_strPos += oSel.text.length;
}
oSel.moveStart (‘character’, ie_strPos);
oSel.moveEnd (‘character’, 0);
oSel.select ();
}

else if (typeof(obj) != “undefined”) { // Firefox
var longueur = parseInt(obj.value.length);
var selStart = obj.selectionStart;
var selEnd = obj.selectionEnd;

obj.value = obj.value.substring(0,selStart) + sTag + obj.value.substring(selStart,selEnd) + eTag + obj.value.substring(selEnd,longueur); 
strPos += txtarea.value.substring(selStart,selEnd).length;

obj.selectionStart = strPos;
obj.selectionEnd = strPos;
obj.focus ();

}

else obj.value += sTag + eTag; 

obj.focus(); 

} </script>
<button onclick=“insertAtCursor(‘[blah]’,‘[/blah]’)”>Test</button>
<form method=“post” name=“form” action=“”>
<textarea name=“message” cols=“50” rows=“10”></textarea>
</form>

My textarea:
<textarea id=“new_topic_text” class=“new-topic-subject-text elastic” style=“overflow: hidden;”></textarea>

In your javascript, refer to the <textarea> directly by inputting the <textarea>'s id into getElementById() and then it won’t matter where the <textarea> is in your html.

It is invalid to have a textarea that isn’t inside a form.

For a textarea to be valid in HTML4/5 it needs to be wrapped inside a block element such as <fieldset> or <div> which in turn is inside a <form>

HTML3.2 (which was superceded in 1997) allowed the textarea to be directly inside the form tag but still required that the form tag be there. There has never been a version of HTML that allows form fields outside of forms.