2011-07-01 3 views
3

Google에서 잠시 동안 파고 들었으며 스택 오버플로가 발생했으며 이에 관련된 내용을 찾을 수 없습니다.두 개의 입력이 포함될 때 jQuery 블러가 계속 실행됩니다.

블러 링 할 때 서버에 jQuery AJAX 기능을 호출하는 입력 텍스트 필드가 여러 개 있습니다. 거의 아름답게 작동합니다.

문제는 하나의 텍스트 입력에 초점을 맞추고 다른 텍스트 입력을 클릭하면 (초점이 맞춰진 경우) 문제입니다. blur 이벤트는 서버 및 경고에 대한 AJAX 호출로 계속 발생합니다.

어떤 아이디어가 계속해서 흐려지기 때문에 아무렇게나 번쩍이는 것은 아닐까요? 아마도 내가 해결하지 못할 단순한 무언가가있을 것입니다.

다음은 코드입니다 ({{}} 및 {%%} 태그는 무시하십시오. 장고 템플릿입니다).

의 입력 :

<td class="tracking-text">CK Req:</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.checkreq|default_if_none:"&nbsp"}}" size="10"></td> 
    <td class="tracking-text">LPD:</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.lpd|default_if_none:""}}" size="10"></td> 
    <td class="tracking-text">PR#</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.prnumber|default_if_none:""}}" size="10"></td> 
    <td class="tracking-text">DATE:</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.prdate|default_if_none:""}}" size="10"></td> 

JQuery와 : 어떤 아이디어가 크게 감상 할 수

 $('.tracking-input').blur(function(){ 

      $.post("{% url buy.views.update_purchase_ajax %}", 
       {pr_pk: $('span#pr_pk').html()}, 
       function(data){ 
        alert(data.message); 
       }, 'json'); 


     }); 

.

답변

5

alert이 (가) 다시 포커스를 잃어 다른 AJAX 요청을 실행하지 못하게합니다.

입력이 비어 있지 않은 경우에만 AJAX 요청을 전송하여 문제를 해결할 수 있습니까?

alert이 정말로 필요한가요 아니면 디버깅 용입니까? 이것이 디버깅을 위해 alert을 사용하지 않아야하는 주요한 예입니다. console.log을 사용하십시오.

+0

경고는 디버깅하기위한 것입니다. 페이지의 나머지 부분에 단일 입력을 클릭 할 때 문제가 발생하지 않았습니까? – Fernker

+1

좋아, 그럼 그냥 제거하면 견과류 먹는 걸 멈춰야 해. 어쩌면'console.log'를 시도해도 기능에 영향을 미치지 않습니다. –

+0

제거하면 멈추는 것처럼 보입니다. 그래서 그것은 내 문제를 해결합니다 (감사합니다!). 나는 아직도 경고가 입력이 흐리게 생각하고, 집중하고, 흐리게 만든다고 생각하는 100 % 확신이 없다. 그러나 그럼에도 불구하고 작동한다. 다시 한번 감사한다. – Fernker

3

문제는 alert()입니다.

반복해서 계속 표시되도록 입력이 표시되면 초점을 멀리합니다.

관련 문제