2016-05-18 16 views
0

Ich habe schreibgeschützte Textfelder in einem Format, das Daten aus einer Tabelle automatisch ausfüllt.Ändern der Textfeldbreite zum Anzeigen aller Daten in xhtml-Hauptansichten

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

Einige Einträge werden nicht vollständig angezeigt, da sie die Textfeldbreite überschreiten. Wie kann ich den Onmouseover-Befehl verwenden, um die Breite des Textfelds dynamisch zu ändern?

+0

Überprüfen Sie die Eigenschaften 'onmouseover' und 'onmousouse'. Sie können es auch mit [CSS] (http://www.w3schools.com/cssref/sel_hover.asp) machen. –

Antwort

1

Dies scheint zu funktionieren:

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

Sie würden min-width und nicht width im styleclass zu verwenden.

Aber wenn der Inhalt kleiner als die aktuelle Größe ist, wird es auch kleiner. Wenn Sie nicht wollen, dass Sie so etwas wie

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

Der Wert (10 oben) sollte gewählt werden können, so dass es die min-width im styleclass übereinstimmt.

Sonst könnte man es einen Titel geben:

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

Das Onmouseover angezeigt.

Man könnte es auch geben ein p:tooltip:

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

, dass dasselbe mehr oder weniger ist.

+0

Funktioniert es für dich @Manish Chawla? Ich denke, eine andere Option ist die Verwendung einer Javascript-Bibliothek (die egal ist, woher die Eingabe kommt, Primefaces oder nicht) –

+1

Hat ein paar kleine Änderungen vorgenommen, da es das Layout meiner Tabelle zur Laufzeit gestört hat. Ansonsten funktioniert es gut für mich @jaquen H'ghar. Ein Mann ist dankbar. –