首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Knockout.js仅在值更改时启用保存

Knockout.js仅在值更改时启用保存
EN

Stack Overflow用户
提问于 2014-03-27 04:39:14
回答 1查看 1.4K关注 0票数 2

我有一个简单的html页面与值输入和保存按钮。我希望仅当值改变时才启用保存(有时初始化,有时不初始化。

我试过几件事都没有成功

HTML

代码语言:javascript
运行
复制
<input type="text"
    placeholder="type here"
    data-bind="value: rate,"/>
<button data-bind="click: save">Save</button>

JS

代码语言:javascript
运行
复制
    var viewmodel = function () {
        this.rate = ko.observable('88').extend(required: true);
    };

    viewmodel.prototype.save = function () {
        alert('save should be possible only if rate is changed);
    };

也在jsfiddle

EN

Stack Overflow用户

发布于 2014-03-27 04:57:28

应该能够通过计算的可观察性和enable绑定来实现这一点。请参阅http://jsfiddle.net/brendonparker/xhLrB/1/

Javascript:

代码语言:javascript
运行
复制
var ctor = function () {
    var self = this;
    self.originalRate = '88';
    self.rate = ko.observable('');
    self.canSave = ko.computed(function(){
        return self.originalRate == self.rate();
    });
};

ctor.prototype.save = function () {
    alert('save should be possible only if rate is changed');
};

ko.applyBindings(new ctor());

HTML:

代码语言:javascript
运行
复制
<input type="text" placeholder="type here" data-bind="value: rate, valueUpdate: 'afterkeydown'"/>
<button data-bind="click: save, enable: canSave">Save</button>
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22672554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档