Telerik MVC CurrencyTextBox - 自定义值格式

时间:2011-12-29 23:44:48

标签: telerik telerik-mvc

(首先,我已经在Telerik论坛上发布了这个帖子(link),但这个网站获得了更多的流量,所以我希望能早点得到一些帮助。)

我正在尝试使用CurrencyTextBox实现一些自定义值格式化,但控件处理值的方式使事情变得非常困难。

我想要做的是:如果用户输入的值不包含“。”字符,它将该值格式化为美分而不是美元。因此,如果用户输入“16”,我希望控件显示(并包含值)$ 0.16。如果用户输入带有“。”的值,我希望控件正常运行。如果用户输入“16.”,“16.0”或“16.00”,我希望控件显示(并包含值)“$ 16.00”。零售业务的人员将使用此应用程序,这是他们期望价格值的输入运作的方式。

但是,无论我是订阅OnChange事件还是文本框本身的“模糊”事件,它都会剥离“。”字符,如果之后没有任何内容,或者之后只有0。示例:如果我输入的值为“16.”,“16.0”或“16.00”,则从javascript中的文本框中提取的值将为“16”。因为我必须检查“。”的存在。这会破坏我的逻辑以正确格式化值。

所以我正在寻求一些帮助或建议。这是我现在正在根据需要正确格式化值的JavaScript。如您所见,如果该值不包含“。”。字符,值除以100,这正是我想要的。剥离这个角色正在扼杀我的逻辑。 :)

$('custom-price').find('input').live('blur', function (e) {
    var sender = $(this).data('tTextBox');
    var priceVal = $(this).val(); // $(this).attr('value') also returns the value with the character stripped, FYI
    if (priceVal.indexOf(".") == -1) {
        priceVal = priceVal / 100;
    }
    sender.value(priceVal);
});

1 个答案:

答案 0 :(得分:0)

使用ascii代码尝试相同的“。”操作员(46)。 OnKeyPress,如果你发现ascii代码46改变控件的格式..

此致 Dhaval Shukla