Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 击昏掩蔽_Javascript_Html_Knockout.js - Fatal编程技术网

Javascript 击昏掩蔽

Javascript 击昏掩蔽,javascript,html,knockout.js,Javascript,Html,Knockout.js,我正在使用Knockout.js,并尝试在用户输入上使用mask。 当用户输入数字时,我想使用掩码,并用逗号显示它。所以1000就是1000 为此,我有这个函数 function numberWithCommas(n) { var parts=n.toString().split("."); return parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",") + (parts[1] ? "." + parts[1] : ""); } 我不

我正在使用Knockout.js,并尝试在用户输入上使用mask。 当用户输入数字时,我想使用掩码,并用逗号显示它。所以1000就是1000

为此,我有这个函数

function numberWithCommas(n) {
    var parts=n.toString().split(".");
    return parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",") + (parts[1] ? "." + parts[1] : "");
}
我不知道该如何使用它以正确的方式显示它

HTML(它的一部分)


我将创建一个计算的可观察对象,并绑定到它

this.myAmountWithCommas = ko.computed(function() {
        return numberWithCommas(this.myAmount());
    }, this);

范例

更新
添加了一个使用绑定处理程序的简单示例,如果您更愿意使用该绑定处理程序,我只想使用jQuery插件进行屏蔽。答案涉及如何使用自定义绑定处理程序使与knockout的集成更容易。可能是要考虑的事情。

< P>出于同样的目的,我使用插件。它允许用户更轻松地输入固定宽度的输入,您希望他们以特定格式(日期、电话号码等)输入数据

和自定义绑定处理程序

ko.bindingHandlers.mask = {
    init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
        var options = ko.utils.unwrapObservable(valueAccessor()) || "";
        $(element).mask(options);
    }
};
然后可以在任何DOM元素上使用它

<input data-bind="value: Number, mask: '9,9999'"/>


关于

的整个示例,我已经尝试过了,但没有成功地将其整合到代码中:\jsfiddle示例有用吗?
ko.bindingHandlers.mask = {
    init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
        var options = ko.utils.unwrapObservable(valueAccessor()) || "";
        $(element).mask(options);
    }
};
<input data-bind="value: Number, mask: '9,9999'"/>