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

Enable save button on change of input box

本文关键字:启用 保存 按钮 输入      更新时间:2023-09-26

我是轻而易举的实体管理器,可以检查实体是否进行了更改。所以我声明可观察

isSomeChanged = ko.observable()

然后我像这样绑定值

 isSomeChanged(datacontext.hasChanges());

Html 是

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

所以现在如果我在我的页面中更改了某些内容,那么它会启用或禁用按钮。但是,如果我在输入中键入某些内容,则仅在我退出时启用按钮,而不是在我键入后立即启用。

如何在键入内容后立即启用保存按钮?

确保在微风 EntityManager 的 hasChanges 属性更改时更新您的 isSomeChanged 可观察量:

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

确保输入的值绑定具有相应的 valueUpdate 参数设置为"input"。 这将导致对输入的每次更改都会立即写入实体属性,而不是在输入失去焦点时写入。

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

此外,按钮的启用绑定可以这样表示(不需要参数):

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