2012-10-15 3 views
0

제출할 단추/텍스트 상자를 결정하기 위해 if 문을 사용하려고합니다.크롬에서 현재 활성 요소를 가져 오는 방법은 무엇입니까?

예를 들어 firefox/IE/Opera에서 submitNameSearch라는 버튼을 ID로 클릭하면 다음 코드가 항상 true를 반환합니다.

$(document.activeElement)[0] === $("#submitNameSearch")[0] 

그러나 크롬/사파리에서 코드를 테스트하면 반환 값은 false입니다.

내가 잘못했는지 물어볼 수 있습니까?

도움을 주셔서 감사합니다. 이 클릭 트리거 인 경우

답변

4

, 왜 당신은하지 않습니다

$('button').on('click', function() { 
    if (this.id=='submitNameSearch') { 
     //do something 
    } 
}); 

하고 초점이 당신은 항상 할 수 클릭 된 버튼으로 이동 전에 초점이 있었는지 요소를 볼 수 :

var activeElm = null; 

$('button').on({ 
    mousedown: function() { 
     activeElm = document.activeElement; 
    }, 
    click: function() { 
     if (activeElm&&aciveElm.id=='submitNameSearch') { 
      activeElm.focus; //returns focus 
     } 
    } 
}); 
+0

도움 주셔서 감사합니다.하지만 사용자 입력이 텍스트 상자에 입력되는 경우와 같이 클릭에 의한 트리거 일뿐만 아니라 – ssgao

+0

나는 그것을 얻지 못합니까? 사용자가 일종의 텍스트 입력에서 엔터를 치면, 포커스가있는 요소는 반드시 엔터 키가 눌린 곳과 같은 요소입니까? – adeneo

+0

아, 혼란에 빠져서 죄송합니다. 실제로 입력 상자에 입력하십시오. 실제로 예상되는 동작이 있지만 비교가 작동하지 않는 이유를 묻습니다. 별도의 함수 대신 입력 상자와 제출 단추 핸들러를 함께 둘 수 있다면 훨씬 더 좋을 것입니다. – ssgao

관련 문제