【问题标题】:Knockout validation - reset date fields淘汰赛验证 - 重置日期字段
【发布时间】:2013-08-09 19:37:53
【问题描述】:

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

                $(".datepicker").each(function(){
                    if(parseDate($(this).val())==null)
                        {
                            $(this).val('');
                        }
                });

函数在哪里:

               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 更新文本框时不会触发该事件。

请帮忙。

【问题讨论】:

    标签: validation knockout.js


    【解决方案1】:

    我找到了答案……我变了

    $(this).val('');

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

    中所述

    Update the observable when input value is changed by Javascript

    【讨论】:

    • 我不认为这是你想要做的......使用可观察对象的目的是能够将其设置为客户端,即。如果您有一个 dateObservable 并且某些内容发生了变化,只需设置 dateObservable('');
    猜你喜欢
    • 2012-02-18
    • 2015-11-17
    • 1970-01-01
    • 2014-02-01
    • 2011-08-09
    • 2013-01-12
    • 2014-10-13
    • 2014-02-24
    • 1970-01-01
    相关资源
    最近更新 更多