我有以下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标记不在一对form标记内(我在某处看到这有时可能是个问题,但在这里我别无选择)。
我已经尝试了仅使用e参数的handleEnterKey函数,但这没有区别。
如果我将inline属性更改为...
onkeypress="return handleEnterKey(this,doFunc();"
...输入我的e参数设置为textarea对象的handleEnterKey。为什么我没有通过事件对象?显然,这在IE中使用其全局事件对象可以很好地工作。
尽我的智慧。帮助我stackoverflow ...您是我唯一的希望!
最佳答案
由于语法错误,甚至不应调用handleEnterKey
。
return handleEnterKey(event,doFunc();
应该
return handleEnterKey(event,doFunc);
传递
event
绝对有效:DEMO