Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有jquery日期选择器的Javascript,使用knockout_Javascript_Datepicker_Format_Knockout.js - Fatal编程技术网

带有jquery日期选择器的Javascript,使用knockout

带有jquery日期选择器的Javascript,使用knockout,javascript,datepicker,format,knockout.js,Javascript,Datepicker,Format,Knockout.js,我有一个关于使用knockout和jquery-datepicker的数据绑定的问题 只要dateformat是dd-mm-yy,这就可以很好地工作。一旦我将我的dateform at更改为MM yy,数据绑定就不再更新。不管我在列表框中选择了什么,日期改为今天的日期。关于如何让这项工作成功,有什么建议吗?我在多个级别上有多个控件,因此我不希望使用此解决方案: 提前谢谢 Javascript: ko.bindingHandlers.datepicker = { init: functio

我有一个关于使用knockout和jquery-datepicker的数据绑定的问题

只要dateformat是dd-mm-yy,这就可以很好地工作。一旦我将我的dateform at更改为MM yy,数据绑定就不再更新。不管我在列表框中选择了什么,日期改为今天的日期。关于如何让这项工作成功,有什么建议吗?我在多个级别上有多个控件,因此我不希望使用此解决方案:

提前谢谢

Javascript:

ko.bindingHandlers.datepicker = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        $(element).datepicker({
            dateFormat: "dd-mm-yy",
            //dateFormat: "MM-yy",
            changeYear: true,
            changeMonth: true
        });

        //handle the field changing
        ko.utils.registerEventHandler(element, "change", function () {
            var observable = valueAccessor();
            observable($(element).datepicker("getDate"));
        });

        //handle disposal (if KO removes by the template binding)
        ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
            $(element).datepicker("destroy");
        });

    },
    update: function (element, valueAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor()),
            current = $(element).datepicker("getDate");

        if (value - current !== 0) {
            $(element).datepicker("setDate", value);
        }
    }
};
html:


这似乎是jQueryDatePicker的一个bug。无论何时使用该格式,getDate都不会返回正确的值

我有一个部分解决方案,它可以为您重新创建您在链接中指定的解决方案

它使用datejs解析从datepicker返回的datetext。因为当天的信息丢失了,所以不是很好,但这取决于你是否想要。如果没有,我建议你可能必须找到另一个日期选择器,或者改变你的格式以包含日期


希望这有帮助。

这似乎是jquery datepicker的一个bug。无论何时使用该格式,getDate都不会返回正确的值

我有一个部分解决方案,它可以为您重新创建您在链接中指定的解决方案

它使用datejs解析从datepicker返回的datetext。因为当天的信息丢失了,所以不是很好,但这取决于你是否想要。如果没有,我建议你可能必须找到另一个日期选择器,或者改变你的格式以包含日期

希望这有帮助

 <td><input class="dateField" data-bind="datepicker: plannedStartDate" /></td>
...
self.plannedStartDate = ko.observable();
...