增加焦点上的primefaces inputTextArea行

时间:2013-01-04 15:13:36

标签: javascript jquery primefaces

我想要一个primefaces inputTextarea,当聚焦时会将其rows =“1”属性更改为rows =“10”。

我试试这个,但它不起作用:

 <p:inputTextarea rows="1" onblur="if(this.value == '') this.rows =
 '1';" onfocus="this.rows ='50'"/>

使用h:inputTextArea可以正常工作,但由于自动调整大小,我更喜欢使用primefaces inputTextArea。

我可以错过什么吗? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

如果我们假设您的属性和逻辑与框架一致,那么您确定this.value是空字符串吗? 如果没有成功,请尝试if(!this.value),而不是继续搜索。 如果成功,你将不得不做出更准确的布尔语句。

答案 1 :(得分:0)

对我来说,以下工作 - 此解决方案不是基于行,而是基于更改高度,也适用于ajax更新(当html内容在页面中更新或延迟加载时)

$(document).on("focus", "textarea.expand", function() {
     $(this).animate({ height: "12em" }, 500); 
});

$(document).on("blur", "textarea.expand", function() {
     $(this).animate({ height: "4em" }, 500); 
});

JSF部分:

<h:inputTextarea id="testDescriptionTextBox" styleClass="expand" value="#{tributeToBlagusC.testDescription}" rows="4" cols="120" autoResize="false"/>