2012-02-10 10 views
4

私は(他の内の一つではない)お互い以下2つの<h:form>の要素を持っているような:コマンドボタンはIEのみでプレスを「入力」に提出していない<9

<h:form id="innerHeaderForm1"> 
    <h:inputText value="#{searchBar.eventname}" /> 
    <h:commandButton action="#{searchBar.search1}" value="click1"/> 
</h:form> 
<h:form id="innerHeaderForm2"> 
    <h:inputText id="last" value="#{searchBar.personname}"/> 
    <h:commandButton action="#{searchBar.search2}" value="click2"/> 
</h:form> 

これが正常に動作します。私が持っている問題は、最初のフォームで私のkeybordの "enter"キーを押すと、フォームが提出されていないIE8(それは私が他の古いバージョンを仮定している)です。ページはリロードされますが、#{searchBar.search1}も呼び出しません。

このすべてで奇妙なことは、これは2番目の形式で正常に動作することです。エラーメッセージも表示されず、ブラウザからのフィードバックも得られません。

public String search1() { 
    System.out.println("submitting form1"); 
    return "success"; 
} 

public String search2() { 
    System.out.println("submitting form2"); 
    return "success"; 
} 

「Enter」キーを押す使用して、私もそれはバッキングBeanになりません。私のバッキングBeanで

は、私は一種の何かを持っています。

しかし、私が「クリック」すると、送信ボタン(マウスで)がすべて機能します。

これについての洞察は非常に高く評価されます。

答えて

8

<input type="text">フィールドが1つのフォームの場合は、MSIE固有の異常です。唯一の修正は、display: none;によって隠されている別の<input type="text">フィールドを追加することです。

<h:form id="innerHeaderForm1"> 
    <h:inputText value="#{searchBar.eventname}" /> 
    <h:inputText style="display: none;" /> 
    <h:commandButton action="#{searchBar.search1}" value="click1"/> 
</h:form> 

この問題はJSFに関連していません。

+0

インターネットでこれを探してみたところ、何も見つかりませんでした。これはどこかに書かれていますか?これはIEの私の嫌悪感に追加されます。答えをありがとう。私はこの修正にチャレンジする前に、長い間頭を傷つけていたでしょう。 – blo0p3r

+0

私はMicrosoftから信頼できるリソースを見つけることができませんが、このMSIE固有の異常は、すでに存在しており、より経験豊富なWeb開発者の間で知られています。あなたは、少なくともあなたが唯一のものではないことをGoogleに見ることができます:http://www.google.com/search?q=msie+single+text+input+submit+enter – BalusC

+0

Hey BalusC 1つのフィールドのみを持つフォームの問題ですが、私は非常に多くの入力テキストフィールドを持っていますが、他のすべてのブラウザでは "enter"を押してもIE9で送信されません。私はまた、1つの隠しテキストフィールドを配置しようとしましたが、まだ動作していません。私に何か解決策を教えてもらえますか? –

-2

inputTextid="eventName"を受け取りませんでした。

+1

これは意味をなさないとにかくJSFが自動的に生成します。 – BalusC