我有一个表格,用于添加新的预算明细,如下图所示:
当我选择一个收入帐户时,另一行将添加到viewmodel集合中:
我想在添加新行时将所有字段值设置为“0.00”并且我也有问题,因为如果我删除了一行,那么“更改“组合事件不存在,因此在更改最后一个组合时无法添加新行。
有任何线索吗?以下是小提琴工作样本:http://jsfiddle.net/rLUyS/9/
以下是我用来将更改操作绑定到最后添加的组合的代码:
$('select[name=cboincomeaccount_' + newRowIndex + ']').bind("change", {
combo: $(this)
}, handler);
function handler(event) {
newRowIndex++;
var combo = jQuery(this);
var row = combo.parent().parent();
appViewModel.addRow();
// Unbind
combo.unbind('change');
// Bind new combo
jQuery('select[name=cboincomeaccount_' + newRowIndex + ']').bind("change", {
combo: jQuery(this)
}, handler)
jQuery(row).find('input[name^="txtincmonth"]').removeAttr('disabled');
};
提前致谢!!
答案 0 :(得分:0)
这可能不是Knockout问题,因为它是用户界面问题。
我想将所有字段值设置为" 0.00"何时添加新行
嗯,这很容易。只需将可观察行初始化为全零。
当我选择一个收入帐户时,另一行被添加到viewmodel集合中...... 而且我有一个问题,因为如果我删除一行,那么"更改"组合事件不存在,因此在更改最后一个组合时无法添加新行。
这可能是一个可以谈判的要求。
为什么不创建一个'添加'按钮而不是坚持这个" nifty"当用户在下拉列表中创建一个部分时添加一行的行为?
此外,即使我们能够完成你所要求的(我可以设想我们可以做到这一点的方式),当你需要时间来保存用户时,你会做什么? s输入到服务器?你是否计划忽略最后一个空行?