0

環境に関する注記:Infragisticsコンポーネントライブラリを使用するJSF1.1。

次の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とGoogleChromeで問題なく機能するようです。IE8で動作しない理由がわかりません。私は困惑しています。

トマホークを使ってみました<t:inputText/>が、違いはありません。

onkeypress<h:form>や要素のハンドラーに何かを入れてみました<body>が、それも役に立たないようです。そして、私はを使ってみましonkeydownたが、それとの違いも見ていません。

私が思いついた鑑別診断は、それがインフラジスティックスライブラリと関係があるかもしれないということです。IGはページにかなりのスクリプトを追加しますが、IE8でJavascriptを効果的にデバッグする方法についてはしっかりしていません。これはFFのFirebugを突くのに問題はありませんが、私は少し困惑しています。

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

4

3 に答える 3

0

奇妙なことに、IE8とFFでは次のようにしか機能しません。

var key;
if(window.event)
{
    //IE
    key = window.event.keyCode;
}
else
{
    //FF
    key = e.keyCode;
}
于 2010-10-22T06:18:11.617 に答える
0

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

Example
<h:panelGroup>
    <h:inputText id="test1" style="display: none;" styleClass="alignleft" value="" />
</h:panelGroup>
于 2013-01-11T10:55:00.567 に答える
0

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

<h:inputText id="test1" style="display: none;" styleClass="alignleft" value="" />
于 2014-06-20T16:22:35.463 に答える