0

环境注意事项: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。我难住了。

我试过使用 Tomahawk <t:inputText/>,但这并没有什么不同。

我已经尝试在onkeypress<h:form>和/或<body>元素的处理程序中放置一些东西,但这似乎也无济于事。而且,我尝试过使用onkeydown,但也没有看到有什么不同。

我认为我提出的鉴别诊断可能与 Infragistics 库有关。IG 确实为页面添加了相当多的脚本,但我对如何使用 IE8 有效地调试 Javascript 并不十分了解。在 FF 上使用 Firebug 是没有问题的,但我有点难过。

有人有类似的经历吗?知道修复吗?

4

3 回答 3

0

我知道这有点晚了,但这是给其他试图做这件事的人的。如果您的页面仅包含一个h:inputText. 添加另一个像隐藏文本这样可以解决问题。

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 回答
0

奇怪的事情,因为它在 IE8 和 FF 中只适用于我:

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