如何在richfaces日历上使用javascript onkeydown?

时间:2013-06-10 09:37:29

标签: javascript internet-explorer richfaces

我正在使用IE 8。 我想在点击一个输入的组件中启动javascript函数onkeydown。我当然试过了 它是这样的:

<script type='text/javascript'>
function filtrOnEnter(formId,event){
    if (event.keyCode == 13) {
            document.getElementById(formId.toString()).click()
    }
}

<rich:calendar id="#{filterToDateId}" value="#{toDate}"
                                datePattern="yyyy-MM-dd" enableManualInput="true"
                                inputStyle="width: 60px;" onkeydown="filtrOnEnter('#{filterActionId}',event)">
</rich:calendar>

此代码在常规输入中使用时有效。 我也尝试在整个页面上启动这个filtrOnEnter()javascript函数onkeydown。我是这样做的:

<script type='text/javascript'>
     document.onkeydown = myEventHandler;

     function myEventHandler(e){
         filtrOnEnter('stringWithInputId',e);
     }

即使对于富人来说它也能很好地工作:日历但仅限于firefox而不是ie8。 您对如何以第一种或第二种方式解决此问题有任何建议吗? 感谢。

1 个答案:

答案 0 :(得分:1)

问题是您的参数名称event。较旧的IE具有完全不同的事件处理模型。 window.event是一个包含所有事件属性的全局对象。现在,该参数会影响此全局对象。你可以这样做:

function filtrOnEnter(formId, evt) {
    evt = evt || window.event;
    if (evt.keyCode === 13) {
          ...
}