I have never used actionSupport before and here is my first try:
<apex:page controller="TestCommandButtonController">
<apex:pageMessages />
<apex:form >
<label>Text</label>
<apex:outputPanel>
<apex:inputText value="{!text}"/>
<apex:actionSupport event="onchange" action="{!refreshText2}" reRender="text2Input"/>
</apex:outputPanel>
<label>Text2</label>
<apex:inputText id="text2Input" value="{!text2}" rendered="{!text=='Other'}"/>
<label>Text3</label>
<apex:inputText value="{!text3}"/>
<apex:commandButton action="{!sampleButtonHandler}" value="Sample Button"/>
</apex:form>
</apex:page>
The controller code is pretty straight forward as well so I don't paste it here.
The above sample doesn't work well. When I change the text to be Other it doesn't display the text2 input box.
I am just wondering how does the actionSupport connect to the related DOM element. In this case, it is the inputText. It doesn't have a for="" attribute or something similar. How can I make it work?