日時ピッカーに ko バインディングを使用しています。こちらからサンプルを頂きました
しかし、ユーザーが無効なデータを入力すると、値は今日の日付にリセットされます。これを回避する方法は?(フィールドを無効として表示する必要があります。リセットしているため、常に有効と表示されます)
日時ピッカーに ko バインディングを使用しています。こちらからサンプルを頂きました
しかし、ユーザーが無効なデータを入力すると、値は今日の日付にリセットされます。これを回避する方法は?(フィールドを無効として表示する必要があります。リセットしているため、常に有効と表示されます)
これはノックアウトによるものではありません。これは、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
*/
}
});