4

inputText と commandButton を持つ単純なフォームがあります。

<h:form>
    <h:inputText id="xyz" value="#{viewImpl.field}" onfocus="clearText(this)" onblur="setDefaultText(this)" />
    <h:commandButton action="#{viewImpl.method}"/>
</h:form>

commandButton を押すと、フォームが正しく送信されます。しかし、Enter キーを押すと、inputText-Field のままでページがリロードされますが、メソッドは呼び出されません (サーバーはアクティブなブレークポイントでデバッグ モードになっています)。

重要: これは IE 8 でのみ発生します。Firefox では問題なく動作します。これを修正する方法についての手がかりはありますか?

どうもありがとう!

4

1 に答える 1

5

これは、IE の 1 フィールド フォームに関する既知の問題です。Enter キーを押しても、フォームの最初の次へのボタンはトリガーされないため、その name=value のペアは要求パラメーター マップに表示されず、JSF はアクション イベントをキューに入れるためにボタンを識別できません。

これを修正する方法の 1 つは、2 つ目の非表示の入力フィールドをまったく同じフォームに追加することです。

<input type="text" name="dummy" style="display: none;" />

これにより、IE は最初と次のボタンの名前=値のペアも送信します。

于 2013-03-13T18:30:58.930 に答える