【发布时间】:2011-12-29 23:44:48
【问题描述】:
(首先,我已经在 Telerik 论坛 (link) 上发布了这个,但是这个网站获得了更多的流量,所以我希望能尽快得到一些帮助。)
我正在尝试使用 CurrencyTextBox 实现一些自定义值格式设置,但是控件处理值的方式让事情变得非常困难。
我想要做的是:如果用户输入的值不包含“。”字符,它将将该值格式化为美分而不是美元。因此,如果用户输入“16”,我希望控件显示(并包含值)$0.16。如果用户输入带有“.”的值,我希望控件正常运行。如果用户输入“16.”、“16.0”或“16.00”,我希望控件显示(并包含一个值)“$16.00”。此应用程序将供零售业人员使用,这就是他们期望输入价格值的方式。
但是,无论我订阅 OnChange 事件还是文本框本身上的“blur”事件,它都在剥离“。”如果后面没有任何内容或后面只有 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);
});
【问题讨论】:
标签: telerik telerik-mvc