2011-10-07 3 views
5

jQuery UI datepicker 컨트롤이 포함 된 jQuery UI 대화 상자 창이 표시됩니다. 문제는 대화 상자 창에있는 첫 번째 양식 필드가 datepicker이므로 창이 열리면 포커스를받으며 이로 인해 datepicker 창이 자동으로 열립니다. 나는 이것을 원하지 않는다.대화 상자에서 jQuery UI DatePicker 열기 열기

나는 대화 상자의 열기 기능에

$('#Date').datepicker('hide') 

를 호출하고 시도 또한 코드에 도달하면 대화 상자가 열려 있지만 작동하지 않을 수 있습니다 코드의 날짜 선택기 창 ISN 후 아직 열리지 않았다.

대화 상자 창이 나타나도 datepicker 창이 열리지 않지만 사용자가 입력을 클릭 할 때 열어 두도록하려면 어떻게합니까?

+0

중복 가능성 [대화 오프닝에서 제 양식 입력 흐림되다 (http://stackoverflow.com/questions/5418138/how-to-blur-the-first-form-input-at - the-dialog-opening) – Teepeemm

답변

7

당신은 아이콘 트리거 사용할 수 있습니다 http://jqueryui.com/demos/datepicker/#icon-trigger

을 그리고, 필요한 경우, 날짜를 입력에서 사용자를 방지 할 수 있습니다.

나는 datepicker가 포함 된 대화 상자를 만들었으므로 FF 또는 Chrome에서 문제를 복제 할 수 없었습니다. 그것은 IE에서 일어났다. 이전 답변에 따라

$(".datepicker").datepicker({ 
    dateFormat: 'yy-mm-dd ' 
}); 

$(".datepicker").datepicker("disable"); 

$("#dialog").dialog({ 
width: 400, 
modal: true, 
open: function(event, ui) { 
    $(".datepicker").datepicker("enable"); 
    } 
}); 

http://jsfiddle.net/458bM/2/

: 대화 상자가 열려 있지 않은 경우 How to blur the first form input at the dialog opening

+0

이것이 jsfiddle 문제인지는 모르지만 일반적으로 렌더링 된 페이지에 넣으면 Chrome에서도 발생합니다. –

+0

@NickOlsen 첫 번째 요소에 포커스를 두는 대화 상자입니다. jquery 사용자 팀에게 수정할 수있는 티켓이 있습니다. 그동안 나는 내 대답과 바이올린을 업데이트했습니다. –

+0

그것은 다소 성가신 일입니다. 그러나 무료 일 때 많은 것을 불평 할 수는 없을 것입니다.:) –

0

대화 상자를 정의 할 때 열려있을 때 포커스를받을 요소를 지정할 수 있습니다. 대화 상자의 다른 요소로 포커스 설정

$('#myDialog').dialog({ 
    open: function (event, ui) 
     { 
      $('#myInputBox').focus(); 
     } 
}); 

열려있는 이벤트 코드에 datepicker를 숨기려면 호출 할 수도 있습니다.

+0

설명에서 언급 한 것처럼이 두 가지 아이디어를 모두 시도했지만 작동하지 않았습니다. 나는 open 함수에 중단 점을 넣었고 그 시점에서 datepicker 창이 열려 있지 않습니다. open 함수가 실행 된 후에 열립니다. –

6

당신은 날짜 선택기를 사용하지 않도록 설정할 수 있습니다.

$('#datepicker').datepicker({ 
    ... 
    disabled: true 
}); 

$('#dialog').dialog({ 
    open: function(event, ui) { 
     $('#datepicker').datepicker('enable'); 
    }, 
    close: function(event, ui) { 
     $('#datepicker').datepicker('disable'); 
    }, 
    ... 
}); 

실례 : http://jsfiddle.net/william/Rf37h/1/을 참조하십시오.

+0

시도했지만 작동하지 않습니다. 전체 소스 코드를 제공 할 수 있습니까? –

+0

전체 소스는 http://jsfiddle.net/william/Rf37h/1/ 데모 웹 사이트에 있습니다. –

+0

나는 그것을 볼 수 있지만, 별도의 파일에서 호출 할 때, 그것은 작동하지 않는다. jquery1.6.3 만 포함하면됩니까? –

0

는에 자동 초점하려고합니다 그것이 전에 숨겨진 요소를 추가이 한 줄의 코드를

$(document).ready (function() { 
$('#dialog_modal_body').on("click", ".datepicker", function(){ 
     $("#ui-datepicker-div").css("z-index", "100000"); 
}); 
}); 
0

을보십시오.

이렇게하면 대화 상자를 열 때 datepicker에 집중하지 않게됩니다.

<span class="ui-helper-hidden-accessible"><input type="text"/>Prevents autofocus from opening start datepicker on dialog load</span> 
관련 문제