Telerik MVC CurrencyTextBox-自定义值格式

Telerik MVC CurrencyTextBox-自定义值格式,telerik,telerik-mvc,Telerik,Telerik Mvc,(首先,我已经在Telerik论坛()上发布了这篇文章,但是这个网站的流量更大,所以我希望能尽快得到一些帮助。) 我试图用CurrencyTextBox实现一些自定义值格式,但是控件处理值的方式让事情变得非常困难 我想做的是:如果用户输入的值不包含“.”字符,它会将该值格式化为美分而不是美元。因此,如果用户输入“16”,我希望控件显示(并包含值)$0.16。如果用户输入带“.”的值,我希望控件正常工作。如果用户输入“16.”、“16.0”或“16.00”,我希望控件显示(并包含值)“$16.00

(首先,我已经在Telerik论坛()上发布了这篇文章,但是这个网站的流量更大,所以我希望能尽快得到一些帮助。)

我试图用CurrencyTextBox实现一些自定义值格式,但是控件处理值的方式让事情变得非常困难

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

但是,无论我订阅OnChange事件还是文本框本身的“blur”事件,如果“.”字符后面没有任何内容或后面只有0,它都会删除“.”字符。示例:如果我输入值“16.”、“16.0”或“16.00”,则从javascript文本框中提取的值将为“16”。由于我必须检查“.”字符的存在,这打破了我正确设置值格式的逻辑

所以我在寻求一些帮助或建议。下面是我现在使用的javascript,可以根据需要正确设置值的格式。如您所见,如果该值不包含“.”字符,则该值将除以100,这正是我想要的。去掉这个角色会扼杀我的逻辑。:)


请使用“.”运算符(46)的ascii代码进行相同的尝试。如果您发现ascii码46,请按OnKeyPress更改控件的格式

问候,, 达瓦尔舒克拉

$('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);
});