淘汰赛js和全球化

2024-04-06

我不知道如何使用淘汰赛 js 和非美国语言环境来处理计算。我的逗号是 , 并且使用 jquery.globalization 插件正确验证,但淘汰计算给我一个 NaN。 knockout js 是否以任何方式支持这一点,或者是否存在任何解决方法?

Example:

使 knockout js 站点上的 cartEditor 示例正常工作,允许数量字段中的小数值并允许全球化输入(如逗号)和输出格式

http://knockoutjs.com/examples/cartEditor.html http://knockoutjs.com/examples/cartEditor.html

我需要它在 asp.net mvc 3 站点上工作,因为我正在使用 nb-NO 区域性运行该站点,并且模型绑定器期望 ,作为逗号符号


我通过编写一个包装的自定义绑定来完成类似的事情autoNumeric.js http://www.decorplanit.com/plugin/用于格式化。 (gist https://gist.github.com/1341303)

ko.bindingHandlers.autoNumeric = function ($) {

    function getElementValue(el) {
        return parseFloat(el.autoNumericGet(), 10);
    }

    function getModelValue(accessor) {
        return parseFloat(ko.utils.unwrapObservable(accessor()), 10);
    }

    return {
        init: function (el, valueAccessor, bindingsAccessor, viewModel) {
            var $el = $(el),
                bindings = bindingsAccessor(),
                settings = bindings.settings,
                value = valueAccessor();

            function updateModelValue() {
                value(getElementValue($el));
            };

            $el.autoNumeric(settings);
            $el.autoNumericSet(getModelValue(value), settings);
            $el.change(updateModelValue);
        },
        update: function (el, valueAccessor, bindingsAccessor, viewModel) {
            var $el = $(el),
                newValue = getModelValue(valueAccessor()),
                elementValue = getElementValue($el),
                valueHasChanged = (newValue != elementValue);

            if ((newValue === 0) && (elementValue !== 0) && (elementValue !== "0")) {
                valueHasChanged = true;
            }

            if (valueHasChanged) {
                $el.autoNumericSet(newValue);
                setTimeout(function () { $el.change() }, 0);
            }
        }
    };
}

使用此自定义自动数字绑定的数据绑定如下所示:

<input data-bind="autoNumeric:amount, settings:{aSign:'$'}" />

查看 autoNumeric.js 丰富的格式化选项,了解可以使用这些设置执行哪些操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

淘汰赛js和全球化 的相关文章