我使用https://eonasdan.github.io/bootstrap-datetimepicker/日期选择器与淘汰赛,并使用淘汰赛验证框架的ISODate验证。
我在日期选择器中发现的是,如果使用键盘输入无效日期(keepInvalid:true),则选择器会引发dp.error事件。如果我然后用键盘更正日期,则选择器不会引发dp.change事件。这是选择器的预期和正确行为吗?如果是这样,是否有解决方法可用于解决用户的问题,如下所述?
使用日期选择器时,ISODate验证永远不会触发。但我希望选择器不会自动更正用户在文本框中键入的内容。我需要做的是使用无效条目更新底层observable,然后让knockout验证触发,这将使用错误验证状态更新UI。
我收到有关使用键盘输入的无效日期自动更正的投诉,因为没有通知已默认更改日期值。
所以我使用选项keepInvalid:true的选择器。绑定处理程序更新dp.change事件中的observable。我已经更新了建议的绑定处理程序,以便更新dp.error事件中的observable。
这几乎做我需要的。但是当我做以下事情时:
如果我使用选择器而不是键盘更正日期,则会触发dp.change事件并且验证错误状态消失。但是,如果我使用键盘改正,那就不行了。