【问题标题】:Using bootstrap datetimepicker with knockout js date input field submission issue使用带有淘汰赛js日期输入字段提交问题的bootstrap datetimepicker
【发布时间】:2016-07-16 05:33:27
【问题描述】:

我在http://eonasdan.github.io/bootstrap-datetimepicker/Installing/#knockout 使用带有引导程序 DateTimePicker 的淘汰赛 js,一切正常,但问题是在提交阶段,即当我提交表单时,我无法获取 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>   

这是我的 ViewModel:

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);

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

【问题讨论】:

  • 请包含足够的(更多)代码来重现它,并删除任何与问题无关的代码。这使得帮助您变得更加容易。如果需要,请参阅“minimal reproducible example”以获得指导。
  • self.params() 是一个空的可观察数组。你永远不会添加任何东西

标签: javascript jquery twitter-bootstrap knockout.js eonasdan-datetimepicker


【解决方案1】:

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

picker.on('dp.change', function (e) {
    date_field(e.date);
});

【讨论】:

  • 在哪里添加此代码?我已经从这里 eonasdan.github.io/bootstrap-datetimepicker/Installing/… 在 datetimepicker 自定义绑定中添加了这段代码,但它给出了错误“选择器未定义”。
  • 请在您的问题中包含更多代码,以表明您已尝试解决方案。如果您正在关注日期选择器的文档,您应该在代码 $("#pickerID").datetimepicker() 中的某个位置。当您更新您的问题时,我会提供进一步的帮助。
【解决方案2】:

我在 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);
    });
}

【讨论】:

    猜你喜欢
    • 2016-06-14
    • 2014-10-13
    • 2023-03-20
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 2014-10-13
    相关资源
    最近更新 更多