IEでJSF 1.1で動作していないEnter-Key PreventionJavaScript
-
10-10-2019 - |
質問
環境に関するメモ: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="" />