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