0

我需要用 jquery-ui 开发一个 datetimepicker 输入。我已经开发了一个日期选择器,并且同样工作得很好。问题是 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

此图像显示错误的日期选择器,它必须是日期时间选择器:

输入的 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>

非常感谢!

4

2 回答 2

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
于 2013-07-26T19:30:34.940 回答
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]);
    }
于 2013-07-29T12:01:49.177 回答