0

这是我的第一个问题,我希望是特别的。我将 UI DatePicker 与 Magento 和 Php 一起使用,一切都会好起来的,但在 IE9 上没有任何效果。这是我的代码,我在这里无法更好地格式化代码,不知道为什么。

<script type="text/javascript">
            jQuery(document).ready(function(jQuery){


    jQuery.datepicker.regional['pt-BR'] = {
        closeText: 'Fechar',
        prevText: '&#x3c;Anterior',
        nextText: 'Pr&oacute;ximo&#x3e;',
        currentText: 'Hoje',
        monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
        'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
        monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
        'Jul','Ago','Set','Out','Nov','Dez'],
        dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
        dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
        dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
        weekHeader: 'Sm',
        dateFormat: 'dd/mm/yy',
        firstDay: 0,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: ''};
    jQuery.datepicker.setDefaults(jQuery.datepicker.regional['pt-BR']);


                jQuery('#entregaprodutoCalendario').datepicker({

                    onSelect: function(dataSelecionada){
                        jQuery.ajax({
                            cache: false,
                            url: '<?php echo Mage::getUrl()?>Entregaproduto/standard/ajaxVerificaDataEntrega',
                            data: {dataSelecionada: dataSelecionada},
                            type: 'GET',
                                                        async: false,
                            dataType: 'json',
                            success: function(data){
                                jQuery('#ul_data_entrega').empty();
                                if(data.length > 0){
                                    jQuery('#ul_data_entrega').append(jQuery('<li></li>').html(' Data : <b>'+data[0].entrega_data+'</b>'));

                                    for(var i=0; i<data.length; i++){
                                        var li = jQuery('<li></li>');
                                                                                var label = jQuery('<label></label>');
                                        var radio = jQuery('<input />').attr({type: 'radio', name: 'entrega_data_hora'});
                                                                                radio.attr('class','radio_hora');            
                                        if(i == 0)
                                            radio.attr('checked','checked');

                                        radio.val(data[i].entrega_data+' entregar ate as '+data[i].entrega_hora_final);
                                        label.append(radio,' entregar at&eacute; &aacute;s <b>'+data[i].entrega_hora_final+'</b>');
                                        li.append(label);
                                                                                jQuery('#ul_data_entrega').append(li);
                                    }
                                }else{
                                    jQuery('#ul_data_entrega').html('<li><span class=dataJaSelecionada>Nenhum horario encontrado!</span></li>');
                                }
                            }
                        });

                        jQuery('#data_entrega').val(dataSelecionada);
                    }
                });

                                jQuery(".radio_hora").live('click', function(){
                                    jQuery(".radio_hora").attr('checked',false);
                                    jQuery(this).attr('checked',true);
                                });
            });
        </script>
4

1 回答 1

1

I've solved this guys, after 1 day of fight. Its becouse, the document ready execute before IE ready to recive all instructions. And get it together with IE bug lose reference we got caos.

jQuery(document).ready(function(jQuery){


jQuery.datepicker.regional['pt-BR'] = {
    closeText: 'Fechar',
    prevText: '&#x3c;Anterior',
    nextText: 'Pr&oacute;ximo&#x3e;',
    currentText: 'Hoje',
    monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
    'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
    monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
    'Jul','Ago','Set','Out','Nov','Dez'],
    dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
    dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
    dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
    weekHeader: 'Sm',
    dateFormat: 'dd/mm/yy',
    firstDay: 0,
    isRTL: false,
    showMonthAfterYear: false,
    yearSuffix: ''};
jQuery.datepicker.setDefaults(jQuery.datepicker.regional['pt-BR']);

setTimeout(function(){ativarCalendario()},3000);    
        });
    function ativarCalendario(){
        jQuery('#entregaprodutoCalendario').datepicker({

            onSelect: function(dataSelecionada){
                jQuery(".ui-datepicker a").removeAttr("href");
                jQuery.ajax({
                    cache: false,
                    url: '<?php echo Mage::getUrl()?>Entregaproduto/Standard/ajaxVerificaDataEntrega',
                    data: {dataSelecionada: dataSelecionada},
                    type: 'GET',
                                                async: false,
                    dataType: 'json',
                    success: function(data){
                        jQuery('#ul_data_entrega').empty();
                        if(data.length > 0){
                            jQuery('#ul_data_entrega').append(jQuery('<li></li>').html(' Data : <b>'+data[0].entrega_data+'</b>'));

                            for(var i=0; i<data.length; i++){
                                var li = jQuery('<li></li>');
                                                                        var label = jQuery('<label></label>');
                                var radio = jQuery('<input />').attr({type: 'radio', name: 'entrega_data_hora'});
                                                                        radio.attr('class','radio_hora');            
                                if(i == 0)
                                    radio.attr('checked','checked');

                                radio.val(data[i].entrega_data+' entregar ate as '+data[i].entrega_hora_final);
                                label.append(radio,' entregar at&eacute; &aacute;s <b>'+data[i].entrega_hora_final+'</b>');
                                li.append(label);
                                                                        jQuery('#ul_data_entrega').append(li);
                            }
                        }else{
                            jQuery('#ul_data_entrega').html('<li><span class=dataJaSelecionada>Nenhum horario encontrado!</span></li>');
                        }
                    }
                });

                jQuery('#data_entrega').val(dataSelecionada);
            }
        });

        jQuery(".radio_hora").live('click', function(){
        jQuery(".radio_hora").attr('checked',false);
        jQuery(this).attr('checked',true);
        });
    }
于 2012-08-08T11:40:16.240 回答