0

これは私が使用しているコードです。このリンクをクリックすると表示され ますhttp://jsfiddle.net/fGq5w/1/ ボタンをクリックすると、日付が変更されます。しかし、時間も表示されます。ボタンをクリックしたときに日付を1つだけ表示する方法。

HTMLコード

       <input id="myDatePicker" data-bind="value: currentDate" />

        <h2>Current Date is:<strong data-bind="text: currentDate"></strong></h2>

      <input type='button' value='change Date' onclick='changeDate();return false;'  />

Javascript

var vm = {
    currentDate: ko.observable()   
};


$(function(){

ko.applyBindings(vm);

$("#myDatePicker").kendoDatePicker();

});

function changeDate()
{
 alert('ok');
 vm.currentDate(new Date(2014,1,1));

}
4

3 に答える 3

0
Your Code with additional functionality to pre-fill the date TextBox.

  var vm = {
        currentDate: ko.observable(kendo.toString(new Date(),'MM/dd/yyyy'))   
    };


$(function(){

    ko.applyBindings(vm);

    $("#myDatePicker").kendoDatePicker();

});

    enter code here

function changeDate()
{
  alert('ok');
  vm.currentDate(kendo.toString(new Date(2014,1,1),'MM/dd/yyyy'));

}
于 2014-02-19T14:30:37.413 に答える
0

Knockout 3.3.0 では、関数を手動で呼び出すのはあまり理想的ではないため、フォーマットを処理する拡張機能を作成できます。

(以下のスニッパーでは、moment.js を使用して日付を解析していますが、剣道の日付パーサーを使用することもできますが、特定の ISO 形式の日付では機能しません)

ko.extenders.stripTime = function (target) {
    var result = ko.pureComputed({
        read: target,
        write: function (value) {
            if (value) {
                target(moment(value).format(shell.getDateFormatString()));
            }
            else {
                target(value);
            }
        }
    }).extend({ notify: 'always' });

    result(target());

    return result;
};

クライアント側のビューモデルで、拡張機能をオブザーバブルに適用します。

self.SomeDateProperty = ko.observable().extend({ stripTime: null });

kendo datepicker を使用しているときにオブザーバブルから JavaScript オブジェクトを取得しようとする場合は、ko.toJS を使用しないことをお勧めします。代わりに、ko.mapping を使用します (JS ライブラリを別途ダウンロードする必要があります)。

var someJavascriptObject = ko.mapping.toJS(viewModel);
于 2015-06-10T16:39:06.600 に答える