2011-10-05 64 views
2

我有下面的textarea HTML標記,我插入一個運行時到DOM(我只顯示它看起來後它插入),我設置onkeypress事件發射作爲內聯屬性。但是,在Firefox中,當我按下某個鍵時,出現「未定義事件」錯誤。Firefox onkeypress事件沒有通過事件參數

<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; 
    } 

} 

我已經看過噸的幫助,告訴我,我應該期待一個事件對象參數提供給JS代碼我在onkeypress事件ATTR的地方,但我不斷收到此錯誤。

textarea標籤不在一對窗體標籤內(我在某處看到這可能是一個問題,但我在這裏沒有選擇)。

我已經嘗試了只有e參數的handleEnterKey函數,但這沒有什麼區別。

如果我改變了內嵌屬性...

onkeypress="return handleEnterKey(this,doFunc();" 

...我進入handleEnterKey設置爲textarea的對象我的e參數。爲什麼我沒有通過事件對象? Obvisouly這在IE中使用它的全局事件對象正常工作。

在我的智慧結束。幫助我stackoverflow ...你是我唯一的希望!

回答

4

handleEnterKey甚至不應該被調用,因爲您有語法錯誤。

return handleEnterKey(event,doFunc(); 

應該

return handleEnterKey(event,doFunc); 

傳遞event肯定工程:DEMO