IE8的JQuery datepicker问题

时间:2012-04-05 15:33:49

标签: jquery internet-explorer internet-explorer-8 datepicker

我正在通过旅行优惠开发一个搜索引擎,并且我有几个字段有开始日期和结束日期,里面有datepicker。 它在任何地方都运行良好,但在Internet Explorer 8中:它只显示2的第一个日历... IE在这些行中给我一个警报,但我看不出问题出在哪里:

function spCalendar( id, options, from, to )
{
 jQuery( document ).ready(
  function() {
   jQuery.extend( 
    options, { 
     onClose: function() {
      time =  jQuery( this ).datepicker( 'getDate' );
      jQuery( '#'+this.get( 'id' ).replace( '_selector', '' ) ).val( new Date( time       ).valueOf() ); 
 }     
}
   );
jQuery.extend( options, spCalLang );
jQuery( '#'+id+'_from_selector' ).datepicker( options );
if( from > 0 ) {
 jQuery( '#'+id+'_from_selector' ).datepicker( 'setDate', new Date( from ) );    
}
else {
 jQuery( '#'+id+'_from_selector' ).val( '' );
}      
jQuery( '#'+id+'_to_selector' ).datepicker( options );
if( to > 0 ) {
 jQuery( '#'+id+'_to_selector' ).datepicker( 'setDate', new Date( to ) );    
}
else {
 jQuery( '#'+id+'_to_selector' ).val( '' );
   }   
  } 
 );
}
;

感谢您的帮助!

here is the page

2 个答案:

答案 0 :(得分:0)

尝试

    function() {
        jQuery.extend( 
            options, { 
                onClose: function(dateText, inst) {
                var dtPicker = $("#"+inst.id);
                    time =  dtPicker.datepicker( 'getDate' );
                    jQuery( jQuery(dtPicker).attr( 'id' ).replace( '_selector', '' ) ).val( new Date( time ).valueOf() ); 
                }                   
            }
        );

也适用于IE7 删除'yearSuffix'的最后一个逗号:'',< ----

spCalLang = {
'timeOnlyTitle': 'Choose Time',
'timeText': 'Time',
'hourText': 'Hour',
'minuteText': 'Minute',
'secondText': 'Second',
'currentText': 'Oggi',
'closeText': 'Scegli',
'monthNames': ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],
'monthNamesShort': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
'dayNames': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
'dayNamesShort': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
'dayNamesMin': ['Do', 'Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa'],
'weekHeader': '',
'yearSuffix': ''};

答案 1 :(得分:0)

我不知道你是否还有这个问题,但我在OP代码中看到的两个问题已修复如下:

function spCalendar(id, options, from, to) {
    jQuery(document).ready(function() {
        jQuery.extend(options, {
            "onClose": function() {
                var time = jQuery(this).datepicker('getDate'); //Added var keyword to declare variable
                jQuery('#' + this.get('id').replace('_selector', '')).val(new Date(time).valueOf());
            }
        });
        jQuery.extend(options, spCalLang);
        jQuery('#' + id + '_from_selector').datepicker(options);
        if (from > 0) {
            jQuery('#' + id + '_from_selector').datepicker('setDate', new Date(from));
        } else {
            jQuery('#' + id + '_from_selector').val('');
        }
        jQuery('#' + id + '_to_selector').datepicker(options);
        if (to > 0) {
            jQuery('#' + id + '_to_selector').datepicker('setDate', new Date(to));
        } else {
            jQuery('#' + id + '_to_selector').val('');
        }
    });
}​ //removed unnecessary semi-colon

我不再拥有IE8,因此我无法测试您链接的网站。此外,http://www.mawitalia.it/viaggidiatlantide/components/com_sobipro/var/js/2b243ae1f1120a3d557ef0e4f3189a89.js的链接返回404 - Not Found。