0

我从这里http://eonasdan.github.io/bootstrap-datetimepicker/Installing/#knockout使用带有引导程序 DateTimePicker 的淘汰赛 js ,一切正常,但问题在于提交阶段,即当我提交表单时我可以' t 获取 datetimepicker 输入字段的更新值:这是我的工作 HTML:

<div data-bind="foreach: params">
    <input class="form-control" type="text" data-bind="attr: { name: label}, value: value, dateTimePicker: 'date_field'" />

     <button data-bind="event: { click: addParameters } , attr: { class: btn btn-success', href: 'javascript:void(0)'}">Save Settings</button>
</div>   

这是我的视图模型:

function viewModel(data)
{
    // date field observable
    self.date_field  = ko.observable(new Date('2012/12/12'));
    // Observable to track the html form
    self.params = ko.observableArray();
    // when user click by Save Settings button
    self.addParameters =  function(options) 
    {
        var dataparams = self.params();
        console.log(dataparams);
    }    
}
ko.applyBindings(new viewModel);

谁能指导我做错了什么?谢谢你的提前。

4

2 回答 2

0

我在 knockout.js v 3.3.1 中遇到了同样的问题

update: function(element, valueAccessor) {
    var value = ko.utils.unwrapObservable(valueAccessor());

    $(element).data('DateTimePicker').setDate(makeStringStandard(value));
    $(element).on('dp.change', function (e) {
        debugger;
        valueAccessor(e.date);
    });
}
于 2019-10-22T03:24:03.557 回答
0

我也使用这个日期选择器。该模块不会将更新事件发送到淘汰赛 observables。我在初始化后为每个日期选择器执行此操作:

picker.on('dp.change', function (e) {
    date_field(e.date);
});
于 2016-03-28T22:08:54.660 回答