繁体   English   中英

jQuery-UI DateTimePicker不起作用

[英]jQuery-UI DateTimePicker doesn't work

我需要使用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与上面的函数中显示的不同,即它们是组件的不同,因为我删除了按钮,但是它们在此函数中显示为错误的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>

非常感谢!

你在做什么是绝对错误的。 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

我只是解决问题。 解决的办法是替换一些脚本,例如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]);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM