質問

環境に関するメモ:JSF 1.1 Infragisticsコンポーネントライブラリの使用。

次のJavaScriptを使用しています 試み 「Enter」キープレスがフォームを送信するのを防ぐため。

function disableEnterKey(e){     
     var key;      
     if(window.event)
          key = window.event.keyCode;
     else
          key = e.which;
     return (key != 13);
}

それからJSPで、私は持っています:

<h:inputText id="an_id" value="#{bean.value}" 
             onkeypress="return disableEnterKey(event);" />

これは、FirefoxとGoogle Chromeで完璧に機能しているようです。 IE8で動作しない理由がわかりません。私は困惑しています。

トマホークを使ってみました <t:inputText/>, 、しかし、それは違いを生みません。

私は何かを入れようとしました onkeypress 親のためのハンドラー <h:form> および/または <body> 要素ですが、それも助けにはなりません。そして、私はそれを使用しようとしました onkeydown, 、しかし、それとの違いも見られませんでした。

私が思いついたと思う鑑別診断はそれです 五月 Infragistics Libraryと関係があります。 IGはページにかなりのスクリプトを追加しますが、IE8でJavaScriptを効果的にデバッグする方法については堅実ではありません。これは、FFでFirebugで突くのに問題はありませんが、私は少し困惑しています。

誰かが同じような経験をしていますか?修正を知っていますか?

役に立ちましたか?

解決

私はそれが少し遅れていることを知っていますが、これはこのことをしようとする他の人のためです。この問題は、ページに1つしか含まれていない場合に発生します h:inputText。別のような隠されたテキストを追加すると、これが問題を解決します。

Example
<h:panelGroup>
    <h:inputText id="test1" style="display: none;" styleClass="alignleft" value="" />
</h:panelGroup>

他のヒント

奇妙なこと、IE8とFFではこの方法でのみ機能するからです。

var key;
if(window.event)
{
    //IE
    key = window.event.keyCode;
}
else
{
    //FF
    key = e.keyCode;
}

これがこれを解決する唯一の方法でした!

<h:inputText id="test1" style="display: none;" styleClass="alignleft" value="" />
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top