2011-10-05 11 views
2

DOM에 런타임을 삽입하는 HTML 태그가 있습니다. (삽입 된 모양을 보여주었습니다) onkeypress 이벤트를 설정합니다. 인라인 속성으로. 그러나 파이어 폭스에서는 키를 눌렀을 때 "포커스가 맞지 않다"라는 오류가 발생합니다.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; 
    } 

} 

나는 이벤트 객체 매개 변수가 나는 때 onKeyPress의 ATTR에 배치 할 JS 코드를 사용할 수있을 것으로 예상한다고 말해 도움의 톤 살펴 보았다,하지만 난이 오류가 계속.

textarea 태그는 한 쌍의 양식 태그 안에 없습니다 (어딘가에 문제가 될 수 있지만 여기에는 선택의 여지가 없습니다).

전자 매개 변수로만 handleEnterKey 함수를 시도했지만 아무런 차이가 없습니다. 내가 인라인 속성을 변경하면

...

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

... 나는 텍스트 영역 객체로 설정 내 이메일 매개 변수와 함께 handleEnterKey를 입력합니다. 왜 나는 이벤트 객체를 전달하지 않습니까? Obvisouly이 전역 이벤트 개체와 함께 IE에서 잘 작동합니다.

내 재치가 끝나면. stackoverflow ... 내 유일한 희망이야!

답변

4

handleEnterKey은 구문 오류가 있어도 호출하지 않아야합니다. event 전달

return handleEnterKey(event,doFunc(); 

해야

return handleEnterKey(event,doFunc); 

확실히 작동합니다 DEMO