Javascript 击昏掩蔽
我正在使用Knockout.js,并尝试在用户输入上使用mask。 当用户输入数字时,我想使用掩码,并用逗号显示它。所以1000就是1000 为此,我有这个函数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] : ""); } 我不
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'"/>