2012-01-10 3 views
2

동적으로 생성 된 JQuery 대화 내용의 내용에있는 텍스트 필드에 초점을 맞춰야하는 문제가 있습니다. 나는 이것에 대해 봤 거든 Jquery 대화 상자가 모달로 설정되어 있으면 JQuery는 문서 수준에서 포커스를 "훔쳐"보인다. 솔직하게 말하면, 나는 그것이 의미하는 바를 실제로 이해하지 못한다 : 그러나 누군가 내 문제에 대한 해결 방법을 찾으면, 그것은 인정 될 것이다. 아래는 Jquery 대화 상자의 코드 스 니펫입니다.JQuery에서 텍스트 필드에 포커스 대화 상자의 내용이 작동하지 않습니다.

$.post(URI, Params, function(data){ 
    $("<div id='MyModal'></div>").html(data).dialog({ 
     show: "blind", 
     width:1000, 
     height:600, 
     title:"My Modal", 
     resizable: false, 
     modal: true, 
     draggable:false, 
     position:['center','center'], 
     buttons: { 
      "Close": function() { 
       //window.console.log('Close button clicked'); 
       $(this).dialog("close"); 
      }, 
     }, 

     // Onclose callback 
     close:function(){ 
      // Close modal 
          CloseDiaryModal(); 
     } 
     // End onclose callback 
    }) 
    // Add styling to button widgets 
    .dialog("widget") 
    .find(".ui-dialog-buttonset").css({'float': 'left', 'width': '100%'}).end() 
    .find(".ui-dialog-buttonset button") 
    .eq(0).css({'float': 'left', 'margin-left': '10px'}).end() 
    .eq(0).attr('id', 'CloseBtn').end() 
}) 
.complete(function() {  
      // Set focus 
    $("#SearchField").focus(); 
}); 
// End modal function 

다음 옵션을 추가하려고했지만 여전히 작동하지 않습니다. ATM에서 약 1 초 동안 커서가 깜박 거리고 초점이 사라지는 것을 볼 수 있습니다. 왜 이런 일이 일어나는지 알 수 없습니다. 감사합니다. 누군가가 이것을 도와 줄 수 있기를 바랍니다.

focus:function(event, ui) { 
     $("#SearchLastName").focus(); 
}, 
open:function(event, ui) { 
    $('#SearchLastName').focus(); 
}, 

답변

0

콘텐츠가 모달 대화 상자에 추가 될 때가 더 많습니다. 당신은 대화가 성공적으로로드 확인했습니다 후 텍스트 필드에 포커스를 설정하십시오 :

$('some selector').dialog({ 
    bgiframe: true, 
    open: function() { 
     $('./*your element*/'.focus(); 
    }, 
    beforeclose: function(event, ui) { /* your code */ } 
}); 

이 내용은 이미 대화 상자를 연 후 초점을 수행하려고에 있는지 확인합니다.

+0

게시했을 때 마지막 편집을 놓친 것 같습니다. 어쨌든, 내 편집 된 질문에서 볼 수 있듯이 "open"과 "focus"옵션을 모두 시도했지만 "complete"POST 이벤트에 포커스 코드를 추가하려고 시도했지만 아무것도 작동하지 않습니다. 내가 말했듯이, 당신은 커서가 잠깐 동안 깜박이는 것을 볼 수 있습니다. 그러나 그것은 초점을 잃습니다. – asyadiqin

+0

오른쪽 - 잘 http://jsfiddle.net/ 예를 게시 할 수 있습니까? – danbgray

+0

이전에는 jsfiddle.net을 사용한 적이 없으며 사용 방법을 모릅니다. 게다가 원래 코드는 jsfiddle.net에서 어떤 부분을 추출해야하는지 알기가 꽤 복잡합니다. 네가 나를 도울 수있는 다른 방법? – asyadiqin

0

내가 가진 한 사례에서 문제의 입력 필드가 다른 코드에 의해 사용 중지 된 것으로 나타났습니다.

이의 경우, 어느과 같이 장애인 속성을 제거하는 경우 :

jQuery('#<form-id>').dialog({ 
    open: function(event, ui) { 
     jQuery('#<input-id>').removeAttr('disabled').focus(); 
    } 
}); 

을 ... 또는 문제의 양식 필드를 사용하지 마십시오.

관련 문제