0

日時ピッカーに ko バインディングを使用しています。こちらからサンプルを頂きました

しかし、ユーザーが無効なデータを入力すると、値は今日の日付にリセットされます。これを回避する方法は?(フィールドを無効として表示する必要があります。リセットしているため、常に有効と表示されます)

4

1 に答える 1

1

これはノックアウトによるものではありません。これは、jQueryDatePickerのデフォルトの動作です。

無効な日付を入力すると、の結果$(element).datepicker('getDate')は今日の日付になります。

jQuery DatePickerの現在の入力が有効かどうかを確認するための解決策については、ここを参照してください。次にko.utils.registerEventHandler、カスタムバインディングの呼び出しを次のように変更します。

ko.utils.registerEventHandler(element, "change", function () {

    var observable = valueAccessor();

    var valid;

    /* check validity here */

    if( valid ) {
        observable($(element).datepicker("getDate"));
    }
    else {
        /*
           do something other than jQuery's 'getDate',
           as it will return today's date
        */
    }
});
于 2012-10-02T14:02:59.290 に答える