2013-07-26 121 views
0

我需要用jquery-ui開發一個datetimepicker輸入。我已經開發了一款日期選擇器,並且完美地工作。問題是DateTimePicker顯示日期選擇器,所以選擇缺少時間。jQuery-UI DateTimePicker不起作用

以下與正常工作的DatePicker的功能:

function initInputDate() { 

    //Regionaliza o datepicker 


    //Seleciona todos os Inputs de Data 
    $("*").on("focus", ".inputData", function() { 

     $.datepicker.setDefaults($.datepicker.regional[ "pt-BR" ]); 

     //Adiciona o plugin datepicker do JQuery-UI aos inputs de data 
     $(this).datepicker({ 
      showAnim: 'slideDown', 
      dateFormat: 'dd/mm/yy', 
      changeMonth: true, 
      changeYear: true 
     }); 


    }); 

} 

下面這個函數是什麼是錯的。她正在顯示DatePicker,但應顯示DateTimePicker。我已經意識到顯示的DateTimePicker與上面的函數中顯示的不同,也就是說它們是不同的,因爲我刪除了這些按鈕,但它們出現在下面的這個函數中,成爲false DateTimePicker。

function initInputDateTime() { 

    //Seleciona todos os Inputs de Data 
    $("*").on("focus", ".inputDataHora", function() { 

     //Adiciona o plugin datepicker do JQuery-UI aos inputs de data 
     $(this).datetimepicker({ 
      showAnim: 'slideDown', 
      dateFormat: 'dd/mm/yy', 
      changeMonth: true, 
      changeYear: true 
     }); 

    }); 

} 

我適當的照顧腳本:

jquery-ui-timepicker-addon.js 
jquery.js 
jquery-ui-1.9.2.custom.min.js 

此圖片顯示錯誤的日期選擇它必須是一個DateTimePicker:

輸入的HTML:

<tr> 
    <td> 
    <b>Data e Hora da Análise:* </b> 
    </td> 
    <td> 
    <input id="dsAnalise" class="input inputDataHora hasDatepicker" type="text" size="15" maxlength="16" value="" name="dsAnalise"> 
    </td> 
</tr> 

非常感謝!

+0

你可以通過改變JS文件的順序嘗試: 1. jquery.js 2. jquery-ui-1.9.2.custom.min.js 3. jquery-ui-timepicker-addon.js? – Maximus2012

+0

是的,我現在改變了。 – mayconfsbrito

+0

@mayconfsbrito你能不能展示一下你使用的HTML標記。現在,它是盲目猜測什麼可能無效,爲什麼。 我猜這兩個函數被稱爲?! –

回答

0

我解決這個問題。解決方案是替換一些像jquery-ui.min.js這樣的腳本並重新組織,因爲我有一個名爲main.js的腳本,其他腳本運行javascript/jquery。

下面我顯示腳本的組織:

<script type="text/javascript" src="/fwsibe/sistema/libraries/interface/javascript/jquery/lib/jquery.js"></script> 
<script type="text/javascript" src="/fwsibe/sistema/libraries/interface/javascript/jquery/lib/jquery-ui/jquery-ui.min.js"></script> 
<script type="text/javascript" src="/fwsibe/assets/jquery/js/jquery-ui-sliderAccess.js"></script> 

我這裏顯示初始化腳本main.js文件:

var dirJquery = "/fwsibe/sistema/libraries/interface/javascript/jquery/"; 
    var dirJqueryPlugins = dirJquery + "plugins/"; 
    var dirScriptsEvento = dirJquery + "scripts/eventos/"; 
    var dirJqueryUi = dirJquery + "lib/jquery-ui/"; 
    var arrayScripts = new Array(
     dirJqueryPlugins + "datepicker/jquery-ui-timepicker-addon.js", 
     dirScriptsEvento + "Menu.js", 
     dirScriptsEvento + "Dialog.js", 
     dirScriptsEvento + "Button.js", 
     dirScriptsEvento + "Template.js", 
     dirScriptsEvento + "Select.js", 
     dirScriptsEvento + "InputDate.js", 
     dirJqueryPlugins + "jquery.maskedinput.min.js", 
     dirJqueryPlugins + "jquery.ba-replacetext.min.js", 
     dirJqueryPlugins + "jquery.ba-hashchange.min.js", 
     dirJqueryPlugins + "jquery.form.min.js", 
     dirJqueryPlugins + "fancybox/jquery.fancybox.pack.js" 
     ); 
$(function() { 

    //Carrega os scripts JQuery 
    loadScripts(); 

}); 

/** 
* Recarrega os scripts de evento jQuery sempre que um determinado evento acontece 
*/ 
function loadScripts() { 

    for (var i = 0; i < arrayScripts.length; i++) { 
     jQuery.getScript(arrayScripts[i]); 
    } 
0

你在做什麼是絕對錯誤的。 datepicker和datetimepicker都只需要爲每個字段啓動一次,而不是在每個焦點上啓動。他們從自己展示,你不必在那裏做任何事情。

所以糾正,產生的代碼將是如下:

function initInputDate() { 

    $.datepicker.setDefaults($.datepicker.regional[ "pt-BR" ]); 
    $('.inputDataHora').datepicker({ 
      showAnim: 'slideDown', 
      dateFormat: 'dd/mm/yy', 
      changeMonth: true, 
      changeYear: true 
    });  
} 


function initInputDateTime() { 

    //Seleciona todos os Inputs de Data 
    $(".inputData").datetimepicker({ 
      showAnim: 'slideDown', 
      dateFormat: 'dd/mm/yy', 
      changeMonth: true, 
      changeYear: true 
    }); 

} 

然後jQuery的JS文件應該按以下順序添加:

jquery.js 
jquery-ui-1.9.2.custom.min.js 
jquery-ui-timepicker-addon.js 
+0

沒有工作,輸入將不會顯示日期選擇器。 – mayconfsbrito

+0

我相信這一點必須與我使用ajax的事實有關,因此需要.on(); – mayconfsbrito

+0

你在哪裏使用AJAX?這與它有什麼關係? –

相關問題