Thursday 30 April 2009

Jquery Textarea Resize + RichFaces

<ui:define name="jscript">
<script type="text/javascript">
//<![CDATA[
// alert('Loading page...')
// ]]>
</script>
<a:loadScript src="resource://jquery.js"/>
<script type="text/javascript">
//<![CDATA[
// return the number of lines for a multi-line string
function getRowsCnt(str) {
var rowsCnt = 1;
if (str != null) {
for(var i=0;i<str.length;i++)
if((i=str.indexOf('\n', i))!=-1){
rowsCnt++;
}else{
break;
}
}
return rowsCnt;
}

jQuery(document).ready(function() {
jQuery("#btnResize").click(function(e){
var txtVal = jQuery('textarea[id = "frmSettings:txtValueAdd"]');
var str = txtVal.val();
var rowsCnt = txtVal.attr('rows');
txtVal.attr('rows', rowsCnt + 1);
});
});
// ]]>
</script>
</ui:define>

...

<ui:define name="body">
<input id="btnResize" type="button" value="Resize" />
<h:form id="frmSettings">
...
<h:inputTextarea id="txtValueAdd" cols="120" rows="20" value="#{...}" rendered="#{!editing}" />
...
</h:form>
</ui:define>