GWTの<g:SuggestBox>
要素内にプレースホルダ属性を指定する方法を探しています。 私は<input>
要素がその属性を指定できることを知っていますが、私は入力の代わりにSuggestBox要素に切り替えることにしました。GWT SuggestBox with placeholder属性
誰でも手伝ってもらえますか?
GWTの<g:SuggestBox>
要素内にプレースホルダ属性を指定する方法を探しています。 私は<input>
要素がその属性を指定できることを知っていますが、私は入力の代わりにSuggestBox要素に切り替えることにしました。GWT SuggestBox with placeholder属性
誰でも手伝ってもらえますか?
カスタムのSuggestBoxウィジェットを作成してから、プレースホルダ属性を設定することができます。例:
public class CustomSuggestBox extends SuggestBox {
private String placeHolderText = "";
public String getPlaceHolderText() {
return placeHolderText;
}
public void setPlaceHolderText(String text) {
placeHolderText = text;
getTextBox().getElement().setAttribute("placeHolder", placeHolderText);
}
}
したがって、このプロパティはUIバインダーで設定できます。
<widgets:CustomSuggestBox ui:field="cSuggestBox" placeHolderText="someText" />
PS:現代のブラウザでのみ動作します。あなたはSuggestBox(SuggestOracle oracle, TextBoxBase box)
コンストラクタにこのTextBoxWithPlaceholder
のインスタンスを送信することができ、その場合には
/**
* A text box that displays a placeholder string when empty
*
* <h3>CSS Style Rules</h3>
* <ul class='css'>
* <li>.wogwt-TextBoxWithPlaceholder { primary style }</li>
* <li>.wogwt-TextBoxWithPlaceholder-placeholder { dependent style set when
* the placeholder is displayed }</li>
* </ul>
*/
:wogwt libにサードパーティのチェックアウトだけでなく、古いブラウザでは、それを正しく実装するためには、テキストボックスを拡張TextBoxWithPlaceholderクラスがあります。
私はこのコードgetTextBox()。getElement()。getStyle()。setProperty( "placeholder"、placeHolderText);正しい。私は以下のようにすべきだと思います。 – user1545858
SuggestBox
をサブクラス化することは間違いなく機能します。
あなたはまた、簡単に直接属性を設定することにより、既存のSuggestBox
にプレースホルダを追加することができ、追加のクラスを作成したくない場合は:あなたはgetElement()
メソッドを呼び出す場合は、例外が発生します
SuggestBox suggestBox = new SuggestBox();
suggestBox.getElement().setAttribute("placeHolder", "SOME TEXT);
注意をウィジェットがDOMに追加される前にだから、あなたはそれがDOMに追加される前プレースホルダーテキストを設定し、それが追加されます一度それが現れる持つことができます解決をしたい場合、あなたはAttachEvent
にフックすることができます:
SuggestBox suggestBox = new SuggestBox();
// com.google.gwt.event.logical.shared.AttachEvent.Handler
suggestBox.addAttachHandler(new Handler() {
@Override
public void onAttachOrDetach(AttachEvent event) {
if (event.isAttached()) {
suggestBox.getElement().setAttribute("placeHolder", "SOME TEXT);
}
}
});
あなたは適応追加のプロパティを定義することができます[このソリューション](http://stackoverflow.com/questions/10450987/how-to-add-a-placeholder-to-a-gwt-text-input-field/38316205#38316205)。 –