I am having two radio buttons of label 'Text Mode' and 'Html Mode'. If Text Mode is selected only <h:inputTextarea/>
should be displayed and the contents of HTML editor must be empty. If Html Mode is selected <rich:editor/>
should be displayed and the Text textarea must be empty. The default selection is Text mode. (i.e. if the user adds text in Text mode and navigates to the HTML mode, we would like to clear the textarea before showing the rich:editor and vice versa)
<input id="textMode" type="radio" name="text" value="textMode">Text mode</input>
<input id="htmlMode" type="radio" name="text" value="htmlMode">Html mode</input>
<table id="questionText">
<tr>
<td id="textQuestionField">
<h:inputTextarea value="#{forum.message}" cols="80" rows="3"/>
</td>
<td id="htmlQuestionField">
<rich:editor theme="advanced" useSeamText="true" viewMode="visual" autoResize="true" value="#{forum.message}">
<f:param name="theme_advanced_buttons1" value="newdocument,separator,cut,copy,paste,separator,bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,hr,removeformat,visualaid,separator,sub,sup"/>
<f:param name="theme_advanced_buttons2" value="bullist,numlist,separator,outdent,indent,blockquote,separator,undo,redo,separator,link,unlink,anchor,separator,image,cleanup,help,code,separator,forecolor,backcolor"/>
<f:param name="theme_advanced_buttons3" value="fontselect,fontsizeselect,formatselect,styleselect,separator,charmap"/>
<f:param name="theme_advanced_resizing" value="true"/>
<f:param name="theme_advanced_toolbar_location" value="top" />
<f:param name="theme_advanced_toolbar_align" value="left" />
</rich:editor>
</td>
</tr>
</table>
function textHtmlQuestionHandler(tableId, radioButtonTextId, radioButtonHtmlId, textQuestionId, htmlQuestionId) {
// Text Mode is enabled by default
jQuery(radioButtonTextId).attr('checked', true);
jQuery(tableId).find(htmlQuestionId).hide();
jQuery("input[type='radio']").change(function() {
// Hide HTML question field, if text mode is enabled
if (jQuery(radioButtonTextId).is(':checked')) {
jQuery(tableId).find(textQuestionId).show();
jQuery(tableId).find(htmlQuestionId).hide();
} else if (jQuery(radioButtonHtmlId).is(':checked')) {
// Hide text question field, if HTML mode is enabled
jQuery(tableId).find(htmlQuestionId).show();
jQuery(tableId).find(textQuestionId).hide();
}
});
}
How to achieve this?