2010-02-03 31 views
6

tôi nhận thấy vấn đề này trong IE 7 + 8jquery ui datepicker IE tải lại hoặc nhảy lên đầu trang

$('#event-start-date').datepicker({dateFormat:'DD MM dd yy',minDate:'-0d'}); 

Khi bạn chọn ngày trong IE 7 hoặc 8 trang đi vào # và load lại trang gốc

Tôi đang sử dụng jquery 1.4.0 và ui 1.7.2

+0

Âm thanh như trình xử lý nhấp chuột không trả về sai. Nhưng tôi hy vọng điều này sẽ xảy ra trong tất cả các trình duyệt nếu đó là trường hợp. – prodigitalson

+0

Nâng cấp lên phiên bản 1.4.1 đã khắc phục được sự cố, vì nó ổn trong 1.3.2 – matthewb

+0

Có vẻ như trong 1.4.2 và 1.8.4 vấn đề đã trở lại (nếu nó đã được sửa). –

Trả lời

17

Tôi đã gặp phải sự cố tương tự với jquery 1.4.2 khi sử dụng IE7. Điều này chỉ xảy ra với tôi khi sử dụng một hộp thoại phương thức. Các datepicker xuất hiện trên trang tốt nhưng chọn một ngày làm cho bạn được chuyển hướng đến đoạn #.

Tôi tìm thấy một sửa chữa đó là hoàn toàn khả thi nếu không mong muốn ở đây: http://forum.jquery.com/topic/modal-dialog-with-datepicker

Về cơ bản bạn chỉ cần xé href tắt của hộp trên chọn:

.datepicker({ onSelect: function() { $(".ui-datepicker a").removeAttr("href"); } }); 

Hoặc, nếu bạn đang sử dụng datepicker trên nội dung được tải động và ràng buộc lại, bạn có thể phải mất lớp học đầu tiên:

$("#your_text_box_id").removeClass('hasDatepicker').datepicker({ onSelect: function() { $(".ui-datepicker a").removeAttr("href"); } }); 

Hãy cho tôi một thời gian để tìm thấy điều này vì nhiều các vấn đề khác với jquery datepickers và IE, đi con số.

+1

Cảm ơn bạn rất nhiều vì điều này! Tôi muốn họ sẽ thêm điều này vào mã của jQuery. –

+0

Điều này đã lưu tôi trong ngày. Cảm ơn! – Stephen

+0

để nhận thêm tiền thưởng, hãy xem xét kỹ lưỡng số –

1

Tôi gặp vấn đề tương tự với FF 3.6.13, Jquery 1.5.0 được phân phối từ CDN jquery và jqueryui 1.8.9.

Cực kì kỳ quặc, nó chỉ xảy ra trên một số máy tính có cùng phiên bản firefox, với bộ nhớ cache được xóa.

Sửa lỗi này có hiệu quả đối với tôi. tức là

$(".datepicker").datepicker({ 
    dateFormat: "yy-mm-dd", 
    changeMonth: true, 
    changeYear: true, 
    numberOfMonths: 2, 
    showButtonPanel: true, 
    onSelect: function() { 
    $(".ui-datepicker a").removeAttr("href"); 
    } 
}); 

Vấn đề duy nhất hiện tại là bỏ qua sự kiện .change. Tôi đã sửa lỗi này bằng cách thêm $(this).change():

$(".datepicker").datepicker({ 
    dateFormat: "yy-mm-dd", 
    changeMonth: true, 
    changeYear: true, 
    numberOfMonths: 2, 
    showButtonPanel: true, 
    onSelect: function() { 
    $(".ui-datepicker a").removeAttr("href"); 
    $(this).change(); 
    } 
}); 

$(".date_unix").datepicker({ 
    dateFormat: "@", 
    changeMonth: true, 
    changeYear: true, 
    numberOfMonths: 2, 
    showButtonPanel: true, 
    onSelect: function() { 
    $(".ui-datepicker a").removeAttr("href"); 
    $(this).change(); 
    } 
}); 
+1

Với các tùy chọn giải pháp này như 'minDate' và' maxDate' không bị bỏ qua (trái với câu trả lời khác). – zuluk

Các vấn đề liên quan