2014-01-24 3 views
1

라디오 버튼을 클릭하면서 아약스 게시물 요청을 보냅니다.문제를 일으키는 ajaxComplete() 함수에서 텍스트 상자에 포커스를 설정합니다.

// Get phone number if user selects phone option 
    $('.rdoPhone').click(function() { 
    if ($('.rdoPhone').is(':checked')) { 
     $(".clsEmail_Number").attr('maxlength', '10').focus(); 
    } 
}); 

필수 기능 : 나는 아약스 요청 초점 후, 라디오 버튼 ('.rdoPhone')

<input type="text" class="clsEmail_Number" id="clsEmail_Number" style="width: 194px" 
      name="clsEmail_Number" value="" /> 

을 클릭에 아약스 요청을 보낼 그러나 때
초점 texbox 아래로 이동한다()의 텍스트 상자는 아래 코드로 인해 페이지의 첫 번째 텍스트 상자로 이동합니다.

답변

0

동일한 해결 방법이 있습니다. 그러나 나는 또한 최선의 선택을위한 더 나은 옵션을 찾고있다.

감사합니다, 다음

내가이 사건을 해결하는 데 사용되는 코드입니다.

$(document).ajaxComplete(function (event, xhr, settings) { 
    window.setTimeout(function() { 
     if ($('.rdoEmail').is(':checked') || $('.rdoPhone').is(':checked')) { 
      $(".clsEmail_Number").focus(); 
     } 
     else { 
      $("input[type='text']:visible:first").focus(); 
     } 
    }, 0); 
}); 
2

대신 ajaxComplete에 초점을 설정하는 내 코드는 $ (문서)와 함께 작동하는지 확인 할 수있는 방법

$(document).ajaxComplete(function (event, xhr, settings) { 
     window.setTimeout(function() { $("input[type='text']:visible:first").focus(); }, 0); 
}); 

.ajaxComplete()

덕분에이

$(document).ready(function() { 
    window.setTimeout(function() { $("input[type='text']:visible:first").focus(); }, 0); 
}); 
을 시도 할 수 있습니다
+0

예, 이미 작성했습니다. 하지만 많은 경우에 ajax 요청 후에 포커스를 설정해야하므로 ajaxComplete() 아래에 쓴 이유입니다. 감사합니다. – Gaurav123

+0

한 가지 해결책이 있지만 더 나은 옵션을 찾고 있습니다. 광산은 $ (문서) .ajaxComplete (function (event, xhr, settings) { ) {$ { 'rdoEmail'}이 ('체크 된') 인 경우 $ (".clsEmail_Number"). 포커스(); } else { $ ("input [type = 'text'] : visible : $ ('. rdoPhone'). first "). 포커스(); } }, 0); }); – Gaurav123