2011-09-11 3 views
0

저는 jquery를 사용하고 있습니다. daterange datepicker http://jqueryui.com/demos/datepicker/#date-range 내 코드가 거의 기본 초기화입니다. 필자는 "to"입력 필드 값을 오늘 날짜로, "from"입력 필드 값을 30 일 전으로하고 싶습니다. 나는 동적으로 이러한 입력 값을 설정 어쨌든 발견하지 않았습니다, 도움의이jquery ui daterange picker 입력의 기본 입력 값을 특정 날짜로 설정하십시오.

당신은 별도로 두 개의 필드를 시작해야합니다 감사합니다

<div id="date-wrapper"> 
<script> 
$(function() { 
    var dates = $("#from, #to").datepicker({ 
     defaultDate: "+1w", 
     dateFormat: "M d, yy", 
     changeMonth: true, 
     numberOfMonths: 1, 
     onSelect: function(selectedDate) { 
      var option = this.id == "from" ? "minDate" : "maxDate", 
       instance = $(this).data("datepicker"), 
       date = $.datepicker.parseDate(
        instance.settings.dateFormat || 
        $.datepicker._defaults.dateFormat, 
        selectedDate, instance.settings); 
      dates.not(this).datepicker("option", option, date); 
     } 
    }); 
}); 
</script> 
<label for="from"></label> 
<input type="text" id="from" name="from"/><span style="font-weight:bold;font-size:15px;">-</span> 
<label for="to"></label> 
<input type="text" id="to" name="to"/> 
</div> 
</div> 

답변

2

감사. 당신은 재사용을 위해 개체에 설정을 저장할 수 있습니다.

var settings = { 
    dateFormat: "M d, yy", 
    changeMonth: true, 
    numberOfMonths: 1, 
    onSelect: function(selectedDate) { 
     var option = this.id == "from" ? "minDate" : "maxDate", 
      instance = $(this).data("datepicker"), 
      date = $.datepicker.parseDate(
      instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings); 
     $("#from, #to").not(this).datepicker("option", option, date); 
    } 
}; 
$("#to").datepicker(settings); 
$("#from").datepicker($.extend({}, settings, { defaultDate: '-30d'})); 

가 직접보기 : http://jsfiddle.net/william/xtATL/

자바 스크립트는 같을 것이다.


편집 : 당신은 날짜를 포맷 유틸리티 함수 $.datepicker.formatDate(format, date, settings)를 사용할 수있다

는 입력에 표시 할 : http://jsfiddle.net/william/xtATL/4/ :

$("#to").val(function() { 
    return $.datepicker.formatDate('M d, yy', new Date(), settings); 
}); 
$("#from").val(function() { 
    var thirtyDaysAgo = new Date().getTime() - 30 * (1000*60*60*24); 
    return $.datepicker.formatDate('M d, yy', new Date(thirtyDaysAgo), settings); 
}); 

업데이트 된 예제를 참조하십시오.

+0

안녕하세요, 윌리엄, 답장과 코드를 보내 주셔서 감사합니다. 오늘 날짜가 팝업 날짜 표시기에서 30 일 전과 오늘으로 설정되어있는 것을 확인합니다. 하지만 내가 원했던 것은 = "text"value = "9 월 11 일, 2011"name = "to"id = "to> 페이지가로드 될 때 입력이 비어 있지 않으면, 어떻게하면 좋을까요? 다시 감사합니다 – Anagio

+0

나는 내 대답을 업데이 트했습니다; 잘하면 그것은 당신이 겪은 것입니다. –

+0

감사합니다. 윌리엄, 그렇습니다. 제가 할 수있는 한 많은 바이올린을 바꿨습니다. 위의 편집을 통해 문제를 해결할 수있었습니다. – Anagio

0

datepicker를 초기화하기 전에 올바른 날짜 형식을 사용하여 입력에서 날짜를 설정하거나 초기화 후 datePicker 인 경우 setDate 메서드를 사용하십시오. 예 :

var d = new Date(); jQuery ("# to) .datepicker ("setDate ", d);

관련 문제