关于 knockout.js:Knockout 验证 – 重置日期字段

Knockout validation - reset date fields

我正在尝试重置表单提交时的日期值(例如:部分填写的日期,如 12/...)(同时保存为草稿表单)。我做了以下事情:

1
2
3
4
5
6
                $(".datepicker").each(function(){
                    if(parseDate($(this).val())==null)
                        {
                            $(this).val('');
                        }
                });

函数在哪里:

1
2
3
4
5
6
7
8
9
10
11
               function parseDate(str){
                    var t = str.match(/^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/);
                    if(t!==null){
                      var d=+t[1], m=+t[2], y=+t[3];
                      var date = new Date(y,m-1,d);
                      if(date.getFullYear()===y && date.getMonth()===m-1){
                        return date;  
                      }
                    }
                    return null;
                }

即使文本字段正在更新,它也不会更新绑定到文本框的 observable 的值。我也尝试了 valueUpdate: \\'afterkeydown\\' 但是,我想,在通过 jquery 更新文本框时,该事件不会被触发。

请帮忙。


我找到了答案……我改变了

$(this).val('');

$(this).val('').trigger('change');

中所述

当输入值被 Javascript 改变时更新 observable