2016-05-18 1 views
0

テーブルのデータを自動入力する形式の読み取り専用テキストボックスがあります。xhtmlのすべてのデータを表示するようにテキストボックスの幅を変更する

<p:inputText value="#{ManagedBean.var}" styleClass="textbox" id="varDetails" maxlength="200"></p:inputText> 

一部のエントリは、テキストボックスの幅を超えているため完全に表示されません。 Onmouseoverコマンドを使用してテキストボックスの幅を動的に変更するにはどうすればよいですか?

+0

プロパティ 'onmouseover'と 'onmousouse'を確認します。また、[CSS](http://www.w3schools.com/cssref/sel_hover.asp)で行うこともできます。 –

答えて

1

これは動作するようです:

<h:form> 
    <p:inputText ... 
       onmouseover="$(this).attr('size', this.value.length)" 
       onmouseout="$(this).attr('size', '')" /> 
</h:form> 

あなたはstyleClassの中min-widthなくwidthを使用する必要があると思います。

しかし、コンテンツのサイズが現在のサイズよりも小さい場合、サイズも小さくなります。あなたは

onmouseover="if (this.value.length > 10) $(this).attr('size', this.value.length)" 

のようなものの値(上記10)を使用できることをしたくない場合は、styleClassの中で最小幅と一致するように選択しなければなりません。

そうでない場合、あなたはそれを与えることができるタイトル:

<p:inputText ... value="#{ManagedBean.var}" title="#{ManagedBean.var}" /> 

のonmouseover表示されます。

また、それにp:tooltipを与えることができる:多かれ少なかれ同じだ

<p:tooltip for="varDetails" value="#{ManagedBean.var}" /> 

+0

それはあなたのためにうまく動作しています@Manish Chawla?私は別のオプションは、(入力がどこから来ても、Primefacesかどうか気にしない)javascriptライブラリを使うことだと思います。 –

+1

実行時に自分のテーブルのレイアウトを妨害したので少しの変更がありました。それ以外に、それは私のためにうまく動作します@jaquen H'ghar。男は感謝しています。 –

関連する問題