2011-02-02 1 views
0

하나의 텍스트 입력 필드와 하나의 버튼이 있습니다.JQuery에서 현재 포커스가있는 요소를 읽는 방법은 무엇입니까?

<input type="text" id="myInput" onblur="saveValue();" />  
<input type="button" id="myButton" /> 

흐림 이벤트 (입력 필드)에서 함수 (saveValue)가 호출됩니다. 현재 포커스가 버튼 (myButton) 인 경우 해당 함수를 호출하고 싶지 않습니다.

JQuery에서 어떻게 할 수 있습니까?

답변

0

당신은 시도 할 수 있습니다 : 내가 뭔가를 놓친 경우

if(!$('#myButton').is(':focus')) 
    ... 
0

확실하지, 그런데 왜 그냥 ... 입력 필드에 흐림 이벤트를 바인딩하지 : 당신은 간단하게 시도 할 수

$("#yourInputId").live("blur", function() 
{ 
    saveValue(); 
}); 
+0

이가 OP가 이미 (이 함수는 버튼을 blur 이벤트에 바인딩되지 않음) 무엇을하고 있는지 것 같다 : 여기

는 코드 샘플입니다. –

+0

예 : OP가 내가 제안했던 것과 비슷하게 변경되었습니다. :) – FutureBoy

0

. .

$(':focus').each(function(){  
    if($(this).attr('id') == 'myButton'){ 
    //do stuff here 
    } 
}); 

JQuery와 포럼에서이 post이 대부분의 경우에 작동하는 것이 좋습니다.

1

다음 요소가 포커스되기 전에 하나의 요소가 흐려 지므로 신뢰할 수 없게됩니다. 가장 가까운 근사값은 버튼에 초점이 맞춰지면 지워지는 시간 제한을 설정하는 것입니다.

$(document).ready(function(){ 
    var timer; 

    $('input').blur(function(){ 
     timer = setTimeout(saveValue, 100); 
    }); 

    $('#myButton').focus(function(){ 
     clearTimeout(timer); 
    }); 
}); 
0

질문을 올바르게 이해할 수 있을지 잘 모르겠습니다. 내 시도는 다음과 같습니다. 입력 텍스트의 CSS 클래스를 만들고 jquery를 사용하여이를 참조하십시오.

<input type="text" id="txtName" class="input-text" /> 
<input type="submit" value="Submit"/> 

<script type="text/javascript"> 
$(function(){ 
    $('.input-text').blur(function(){ 
    var $this = $(this); 
    //Call function save value by passing the reference of the current object 
    SaveValue($this); 
    }); 
}); 
</script>