I think placing the script tag above the form tag should do the trick.
The enableDisablePostButton function is defined after the form tag, so it is not able to find the function.
<script type="text/javascript">
function enableDisablePostButton(){
if (document.getElementById("messageText").value.trim() == "") {
document.getElementById("postMessage").disabled="disabled";
} else {
document.getElementById("postMessage").disabled="";
}
}
</script>
<form name="sidebarPostMessageForm" action="../app/NewMessageAsynch.action">
<input type="hidden" name="conversationId" value="${conversationId}"/>
<lalahtml:textarea id="messageText" name="messageText" onkeyup="enableDisablePostButton();" ></lalahtml:textarea>
<input type="button" name="postMessage" id="postMessage" onclick="if(this.form.messageText.value.trim().length>0){sidebar_postMessage();this.disabled='disabled'}" value="<ezmi18n:message key="doSendMessage.Label" />"/>
</form>