2012-08-07 3 views
0

에 정지는 여기에 내 첫 번째 질문은, 내가 especifc 수 있기를 바랍니다. Magento와 PHP에서 UI DatePicker를 사용하고 있습니다. 모든 것이 옳을 것이지만, IE9에서는 아무 것도 잘 작동하지 않습니다. 여기에 내 코드가 있는데, 나는 더 나은 코드를 포맷 할 수 없다. 이유는 모른다.UI 날짜 선택기가 한 번 작업하고하는 것은 단지 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> 
+0

때때로 작동 N 몇 번 해달라고. 대부분 시간은 작동하지 않습니다 – Guerra

+0

코드를 포맷하려면 탭이 아닌 공백을 사용하십시오. (4 개 공간 = 1 개 탭) – carbontax

+0

Pls는이 http://tinyurl.com/9rnan3z – Guerra

답변

1

나는 싸움의 1 일 후에이 사람을 해결했습니다. IE가 모든 명령을 수신 할 준비가되기 전에 문서 준비가 실행되기 때문입니다. IE 버그와 함께 가져 오면 우리는 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); 
     }); 
    } 
관련 문제