knockout.js – 可以使用带有掩码输入的KnockoutJS吗?

我使用该插件https://github.com/plentz/jquery-maskmoney格式化我的钱编辑器…

我试图在该编辑器中使用KnockoutJS,但是它不起作用.没有这个掩码都可以正常工作

我的代码测试很简单:

<input id="Price" data-bind="value: Price"  type="text"  name="Price">

Javascript到Mask输入

$("#Price").maskMoney({ symbol: 'R$',showSymbol: true,thousands: '.',decimal: ',',symbolStay: false });

和KnockoutJS

var viewmodel = function () {
            this.Price = ko.observable();

            this.PriceFinal= ko.computed(function () {
                return this.Price() 
            },this);
        };

        ko.applyBindings(new viewmodel());

解决方法

你应该使用一个可写的计算的observable.
function Myviewmodel() {
    this.price = ko.observable(25.99);

    this.formattedPrice = ko.computed({
        read: function () {
            return '$' + this.price().toFixed(2);
        },write: function (value) {
            // Strip out unwanted characters,parse as float,then write the raw data back to the underlying "price" observable
            value = parseFloat(value.replace(/[^\.\d]/g,""));
            this.price(isNaN(value) ? 0 : value); // Write to underlying storage
        },owner: this
    });
}

ko.applyBindings(new Myviewmodel());

相关文章

事件冒泡和事件捕获 起因:今天在封装一个bind函数的时候,发现el.addEventListener函数支持第三个参数...
js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言...
什么是跨域 跨域 : 广义的跨域包含一下内容 : 1.资源跳转(链接跳转,重定向跳转,表单提交) 2.资源...
@ &quot;TOC&quot; 常见对base64的认知(不完全正确) 首先对base64常见的认知,也是须知的必须有...
搞懂:MVVM模式和Vue中的MVVM模式 MVVM MVVM : 的缩写,说都能直接说出来 :模型, :视图, :视图模...
首先我们需要一个html代码的框架如下: 我们的目的是实现ul中的内容进行横向的一点一点滚动。ul中的内容...