【问题标题】:Enter-key Prevention Javascript Not Working for JSF 1.1 in IEEnter-key 预防 Javascript 不适用于 IE 中的 JSF 1.1
【发布时间】:2010-10-21 13:47:58
【问题描述】:

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

我尝试过使用战斧&lt;t:inputText/&gt;,但这并没有什么不同。

我尝试在父 &lt;h:form&gt; 和/或 &lt;body&gt; 元素的 onkeypress 处理程序中添加一些内容,但这似乎也无济于事。而且,我尝试过使用onkeydown,但也没有看到有什么不同。

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

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

【问题讨论】:

    标签: javascript jsf event-handling infragistics ie-developer-tools


    【解决方案1】:

    我知道这有点晚了,但这是给其他尝试做这件事的人的。 如果您的页面仅包含一个h:inputText,则会出现此问题。 添加另一个类似隐藏的文本可以解决问题。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        这是解决这个问题的唯一方法!

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-10-13
          • 2011-01-26
          • 1970-01-01
          • 2012-02-18
          • 2012-06-23
          • 1970-01-01
          • 2015-08-28
          • 2017-11-22
          相关资源
          最近更新 更多