Javascript 使用Inputmask格式化百分比

Javascript 使用Inputmask格式化百分比,javascript,jquery,percentage,Javascript,Jquery,Percentage,我使用的是Herbot的InputMask,它工作得很好,但我注意到它处理百分比,因此掩码为“0.00%”的值为0.4,格式为“0.4%” 当然可以。有道理。除了我处理的是实际的百分比值,它是一个介于0和1之间的值,所以0.4应该显示为“40.00%”和所说的掩码 我以前遇到过这个问题(使用其他掩蔽系统),并尝试在表单级别通过将传入值乘以100并在输出时将其除以来解决它,但这是一件丑陋的事情。InputMask(预处理器或自定义挂钩)中是否有某种东西允许我将实际值格式化为适当的百分比?好的,我解

我使用的是Herbot的InputMask,它工作得很好,但我注意到它处理百分比,因此掩码为“0.00%”的值为0.4,格式为“0.4%”

当然可以。有道理。除了我处理的是实际的百分比值,它是一个介于0和1之间的值,所以0.4应该显示为“40.00%”和所说的掩码


我以前遇到过这个问题(使用其他掩蔽系统),并尝试在表单级别通过将传入值乘以100并在输出时将其除以来解决它,但这是一件丑陋的事情。InputMask(预处理器或自定义挂钩)中是否有某种东西允许我将实际值格式化为适当的百分比?

好的,我解决这个问题的方法是使用onbeforemack和onUnMask函数。在Clojure,它是:

:onBeforeMask (fn [value opts] (str (* 100 (cljs.reader/read-string value))))
:onUnMask (fn [maskedvalue unmaskedvalue] (str (/ unmaskedvalue 100)))
我仍然相信有一种方法可以替代篡改数据,如果有的话。关键似乎是onBeforeMask为您提供一个字符串,并期望返回一个字符串,而onUnMask将为您提供一个数字(但仍然期望返回一个字符串)