如何设置默认时间和分钟

时间:2014-05-19 05:09:57

标签: javascript jquery twitter-bootstrap knockout.js knockout-2.0

在视图约会选项卡内的fiddle中,有添加计时按钮。当我点击按钮时,会添加一个新行。现在,当我点击日历图标时,会出现一个弹出窗口,显示当前小时和分钟。但我希望它显示 00:00 。可以告诉我怎么办?

我尝试修改引导日期时间选择器source code

中的 setDate 方法
setLocalDate: function (localDate) {
    if (!localDate) 
        this.setValue(null);
    else 
        this.setValue(Date.UTC(localDate.getFullYear(), localDate.getMonth(), localDate.getDate(), localDate.getHours(), localDate.getMinutes(), localDate.getSeconds(), localDate.getMilliseconds()))
},

setLocalDate: function (localDate) {
    if (!localDate) 
        this.setValue(null);
    else 
        this.setValue(00, 00, 00, 00,00, 00, 00))
},

但它没有用。请有人告诉我还有什么需要改变

1 个答案:

答案 0 :(得分:2)

正如@RobG已经说过的那样,你只需在初始化程序中设置值

即可
ko.bindingHandlers.datepicker1 = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        $(function () {
            $(element).parent().datetimepicker({
                pickDate: false,
                pickSeconds: false,
                minuteStep: 10
            });

            $(element).parent().datetimepicker('setValue', '00:00');
        });

// ...

查看更新的JSFiddle

更新

如果您只想00:00作为默认值,则必须首先从valueAccessor中选择值并设置00:00,如果值未定义

init: function (element, valueAccessor, allBindingsAccessor) {
    $(function () {
        $(element).parent().datetimepicker({
            pickDate: false,
            pickSeconds: false,
            minuteStep: 10
        });

        var accessor = valueAccessor();
        var val = ko.unwrap(accessor) || '00:00';
        $(element).parent().datetimepicker('setValue', val);
    });

// ...

请参阅JSFiddle

更新

不幸的是,我找不到任何关于2.2.0版的文档。 如果访问者是一个函数,测试似乎有效

var val = valueAccessor();
if (typeof(val) == 'function')
    val = val();

$(element).parent().datetimepicker('setValue', val || '00:00');

更新了JSFiddle