2010-02-26 6 views
2

작은 jQuery 함수를 수행하고 있습니다. 이 함수는 텍스트 상자를 떠날 때 텍스트 상자의 텍스트를 경고로 표시하고 텍스트 상자를 지우고 다시 동일한 텍스트 상자에 포커스를 설정해야합니다. 그것은 경고 및 텍스트 상자 지우기 텍스트를 표시하는 세 가지 작업 중 두 가지를하고 있지만 다시 해당 텍스트 상자에 포커스를 설정하지 않습니다.jQuery를 사용하여 텍스트 상자에 포커스 설정

이 텍스트 상자는 양식에 있으며 여기에도 탭 색인을 사용했음을 유의하십시오. 알리미에서 ok를 클릭하면 다음 탭 인덱스가있는 다음 텍스트 상자로 포커스가 이동합니다.

여기 내 코드입니다 :

<script type="text/javascript"> 

    function pageLoad() { 
     $("input[id$='txtEmailAddress']").blur(CheckOnServer); 
    } 

    function CheckOnServer() { 
     alert($("input[id$='txtEmailAddress']").val()); 
     $("input[id$='txtEmailAddress']").val(""); 
     $("input[id$='txtEmailAddress']").focus(); 
     alert("2"); 
    } 
</script> 
+3

나는 뭔가를 구축하고 있지만 설명은 짜증나는 기능처럼 들릴 것이라고 확신합니다. id가 txtEmailAddress로 끝나는 입력이 여러 개 있습니까? 그렇다면 포커스()가 목록의 마지막 하나에서 트리거 될 수 있습니다. – Ben

+2

내 무지를 용서하지만 그 시점에서 포커스를 제거하는 경고 ("2")가 아닙니까? –

답변

2

'txtEmailAddress'로 끝나는 필드가 두 개 이상있는 경우 코드가 동시에 각 필드에 포커스를 할당하려고하지 않습니까? $(input[id$='txtEmailAddress']은 단일 DOM 요소가 아니기 때문에 잘못된 필드가 포커스를 얻고 있다고 생각합니다. jQuery는 객체 배열에서 포커스 함수를 실행하도록 설계되지 않았습니다.

나는 Adrian과 동의한다. 원하는 방식으로 작동 시키면 절대 필드에서 나가실 수 있습니다. '경고, 맑게, 다시 초점 맞추기'댄스를 한 번만하고 싶다면 나중에 onblur 기능을 지우는 것을 잊지 마십시오.

1

하여 입력 필드의 흐림 이벤트에 CheckOnServer 기능을 부착 나에게 정말 이상한 것 같다. 나는 코드를 테스트하지 않았으므로 잘못된 것일 수 있습니다. 그러나이를 보니 다음과 같이 말하고 있습니다 :

input[id$='txtEmailAddress']이 포커스를 잃었을 때 몇 가지 작업을 수행하고 다시 포커스를줍니다. 이것은 결코 끝나지 않을 루프입니다 ...

왜 잘못된 필드가 초점을 얻는 지에 관해서는 벤보다 더 좋은 생각이 없습니다.

관련 문제