2010-08-13 10 views
6

thân yêu tôi có một datepicker bên trong hình thức của tôi. sau khi tôi nhấp vào textfield, datepicker hiển thị lên (ngược lại với thả xuống). làm thế nào để tôi làm nếu tôi muốn hiển thị thả xuống datepicker không thả xuống? http://img413.imageshack.us/img413/1460/screenshot5g.pngcách đặt vị trí hiển thị của trình ghi ngày tháng?

+0

bạn quên đề cập đến jQuery trong câu hỏi của bạn. Không ai sẽ biết bạn đang nói về datepicker nào. Tôi biết kể từ khi tôi trả lời câu hỏi cuối cùng của bạn :) – vikmalhotra

+0

@ lznogood - là câu hỏi này đã được gắn thẻ coz tôi có thể đã bỏ lỡ chúng khi tôi nhận xét cuối cùng. – vikmalhotra

Trả lời

0

Tìm giải pháp trong số này post. Đây có phải là những gì bạn đang tìm kiếm?

+0

@Shivik: tốt hơn lệnh nào có thể làm hiển thị ngày tháng của tôi: từ dưới sang phải? – klox

+0

@klox - bạn đang sử dụng công cụ date date nào? bạn đang sử dụng jquery-ui datepicker (http://jqueryui.com/demos/datepicker) hoặc một số khác? – vikmalhotra

+0

@Shivik: có tất nhiên, và sử dụng chủ đề đầy nắng. – klox

10
$('.datetime').datepicker({ 
    dateFormat: 'm/d/yy', 
    beforeShow: function (input, inst) { 
     var offset = $(input).offset(); 
     var height = $(input).height(); 
     window.setTimeout(function() { 
      inst.dpDiv.css({ top: (offset.top + height + 4) + 'px', left: offset.left + 'px' }) 
     }, 1); 
    } 

}); 
+0

Đối với những người muốn biết logic đằng sau nó [kiểm tra điều này] (http://api.jqueryui.com/datepicker/#option-beforeShow) –

0

mở rộng câu trả lời của Igor. Để định vị lịch ở góc dưới cùng bên phải của phần tử đầu vào datepicker, hãy sử dụng phần này:

$('.datepicker').datepicker({ 
    beforeShow: function (input, inst) { 
     var offset = $(input).offset(); 
     window.setTimeout(function() { 
      var calWidth = inst.dpDiv.width(); 
      var inpWidth = $(input).width() + parseInt($(input).css('padding')); 
      inst.dpDiv.css({ left: offset.left + (inpWidth - calWidth) + 'px' }) 
     }, 1); 
    } 
});