在更改输入框时启用保存按钮

时间:2015-01-09 14:45:34

标签: javascript html breeze

我是一个轻松的实体经理,检查实体是否有变化。所以我声明了可观察的

isSomeChanged = ko.observable()

然后我像这样绑定价值

 isSomeChanged(datacontext.hasChanges());

Html

 <button data-bind="click: SaveData, enable: isSomeChanged() "> Save</button>

所以现在如果我在页面中更改了某些内容,则启用或禁用按钮。但是如果我在输入中输入内容,那么只有当我输入时才会启用按钮,而不是在输入后立即启用按钮。

如何输入内容后如何启用保存按钮?

1 个答案:

答案 0 :(得分:1)

当微风EntityManager的hasChanges属性发生变化时,请确保更新isSomeChanged observable:

isSomeChanged = ko.observable();

// update the isSomeChanged observable when the hasChangesChanged event fires.
entityManager.hasChangesChanged.subscribe(
    function(changeArgs) {
        isSomeChanged(changeArgs.hasChanges);
    });

确保您输入的值绑定具有相应的valueUpdate参数设置为&#34;输入&#34;。这将导致输入的每个更改立即写入实体属性,而不是在输入失去焦点时。

<input data-bind="value: entity.FirstName, valueUpdate: 'input'" />

此外,你的按钮的启用绑定可以这样表达(不需要parens):

<button data-bind="click: SaveData, enable: isSomeChanged">Save</button>