【问题标题】:Keep Bootstrap-datetimepicker always open also when hitting key enter当按下回车键时,保持 Bootstrap-datetimepicker 始终打开
【发布时间】:2019-06-19 14:02:15
【问题描述】:

我正在使用Eonasdan bootstrap date/timepicker。我希望我的日历始终显示,即使我在输入字段中按下回车键。到目前为止,我设法显示始终打开日历,除非使用属性按 Enter 键:

keepOpen: true, 
inline: true, 
debug: true.

JS代码段

$(function () {

            $('#datepicker').datetimepicker({
              format: 'DD.MM.YYYY',
              keepOpen: true,
              inline: true,
              debug: true,
              icons:{
                    date: 'fa fa-calendar',
                    up: 'fa fa-chevron-up',
                    down: 'fa fa-chevron-down',
                    previous: 'fa fa-chevron-left',
                    next: 'fa fa-chevron-right',
                    today: 'fa fa-screenshot',
                    clear: 'fa fa-trash',
                    close: 'fa fa-remove'
                }
               //beforeShowDay: 

                    // daysOfWeekDisabled: [0,6]



            });

一段html代码:

<div class="input-group date" data-provide="datepicker"> 

    <input  id="datepicker" type="text" name="date" class="form-control input-md">

    <div class="input-group-addon dt-cal">

        <span class="fa fa-calendar"></span>

    </div>

</div>

【问题讨论】:

    标签: javascript jquery html bootstrap-datepicker


    【解决方案1】:

    你需要使用:

    keyBinds():允许自定义事件在键盘按下时触发。

    回车键的默认值为:

    enter: function () {
        this.hide();  // exactly what you don't want...
    },
    

    删除这种默认行为就足够了:

    $('#datepicker').data("DateTimePicker").keyBinds({'enter': null});
    

    $('#datepicker').datetimepicker({
        format: 'DD.MM.YYYY',
        keepOpen: true,
        inline: true,
        debug: true,
        icons:{
            date: 'fa fa-calendar',
            up: 'fa fa-chevron-up',
            down: 'fa fa-chevron-down',
            previous: 'fa fa-chevron-left',
            next: 'fa fa-chevron-right',
            today: 'fa fa-screenshot',
            clear: 'fa fa-trash',
            close: 'fa fa-remove'
        }
        //beforeShowDay:
        // daysOfWeekDisabled: [0,6]
    });
    $('#datepicker').data("DateTimePicker").keyBinds({'enter': null});
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment-with-locales.js"></script>
    <script src="https://cdn.rawgit.com/Eonasdan/bootstrap-datetimepicker/e8bddc60e73c1ec2475f827be36e1957af72e2ea/src/js/bootstrap-datetimepicker.js"></script>
    
    
    <div class="container">
        <div class="row">
            <div class='col-sm-6'>
                <div class="form-group">
                    <div class='input-group date' id='datetimepicker1'>
                        <input id="datepicker" type='text' class="form-control" />
                        <span class="input-group-addon">
                            <span class="glyphicon glyphicon-calendar"></span>
                        </span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    【讨论】:

    • @gaetonoM 您说要使用 keyBinds,但是当我尝试这样做并覆盖“删除”按键选项时,它确实会更新它,但也会删除我想要的所有其他默认键绑定选项保持。如何仅删除单个 keyBind 选项? keyBinds: {'delete': null } 是我尝试过的。
    • 我们希望能够使用删除键来编辑字段中的日期时间,但目前默认操作是在按下删除键时清除表单字段。该字段还具有默认功能,其中箭头键将打开日历并允许用户选择日期。问题是使用选项告诉 dateTimePicker 不要通过 keyBinds 删除:{'delete': null } 然后我们可以编辑该字段但所有其他默认操作都停止工作(例如箭头键)
    • @gaetonoM 见上面的评论。
    • @Elijah 这与这里的答案完全不同。您可以在 sn-p 中看到日期选择器始终处于打开状态。你问的是一个不同的问题。因此,我建议您提出这个问题,简而言之,您将收到答案。 {'delete': null }{'enter': null} 无关。我希望我的评论足够清楚。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2017-03-14
    • 2016-12-19
    • 1970-01-01
    相关资源
    最近更新 更多