【发布时间】:2011-12-01 14:10:10
【问题描述】:
我有以下 textarea HTML 标记,我将运行时插入到 DOM 中(我只展示了它在插入后的外观),并且我将 onkeypress 事件设置为作为内联属性触发。但是,在 Firefox 中,当我按下某个键时出现“未定义事件”错误,它处于焦点状态。
<textarea rows="3" cols="70" type="text" name="resultsRename" value="" class="redlining_textContent_Dialog_textbox" dojoType="dijit.forms.SimpleTextArea" id="labelText" propercase="false" style="width:auto;" onkeypress="return handleEnterKey(event,doFunc();">
function handleEnterKey(e, func)
{
//alert("hit key handler");
//alert(dojo.toJson(e));
var key = e.keyCode || e.which;
if (key == 13)
{
func();
return false;
}
else
{
return true;
}
}
我查看了大量帮助告诉我,我应该期望一个事件对象参数可用于我放置在 onkeypress attr 中的 js 代码,但我不断收到此错误。
textarea 标签不在一对表单标签内(我在某处看到这有时可能是个问题,但我在这里别无选择)。
我尝试了一个只有e 参数的handleEnterKey 函数,但这没有区别。
如果我将内联属性更改为...
onkeypress="return handleEnterKey(this,doFunc();"
...我输入handleEnterKey 并将我的e 参数设置为textarea 对象。为什么我没有被传递事件对象?显然,这在 IE 中使用它的全局事件对象可以正常工作。
无计可施。帮助我 Stack Overflow...你是我唯一的希望!
【问题讨论】:
标签: javascript firefox dom-events onkeypress