我正在使用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。 您对如何以第一种或第二种方式解决此问题有任何建议吗? 感谢。
答案 0 :(得分:1)
问题是您的参数名称event
。较旧的IE具有完全不同的事件处理模型。 window.event
是一个包含所有事件属性的全局对象。现在,该参数会影响此全局对象。你可以这样做:
function filtrOnEnter(formId, evt) {
evt = evt || window.event;
if (evt.keyCode === 13) {
...
}