在文本框中仅允许.25,.50和.75

时间:2012-07-18 09:17:22

标签: javascript jquery

我正在开发一个Web应用程序并使用javascript来限制或舍入值。每当我在文本框中输入任何小数值时,它应四舍五入为.25,。50,。75或.00。任何想法如何做到这一点?即使只能输入.25,。50,。75和.00也没关系...但是如何仅限制这些特定值呢?

5 个答案:

答案 0 :(得分:4)

答案 1 :(得分:4)

或者:

var n = $('#myInput').val();
alert(.25 * Math.round( 4 * n));

答案 2 :(得分:2)

你只需要一个if语句

例如,我们假设您尝试舍入到最接近的整数,您将执行以下操作或类似的操作:

var remainder = value - Math.floor(value);
if(remainder < 0.5)
    newValue = Math.floor(value);
else
    newValue = Math.floor(value) + 1;

然而,有许多方法可以做到这一点,你只需要选择适当的数字而不是0.5,并且可能需要检查几个范围。

我绝不是说这是最好的选择,但这应该会给你一个想法。

至于文本框条目,您可以运行每个keyup / keydown等,并将值替换为newValue

答案 3 :(得分:1)

var decimal = n - Math.floor(n)
decimal=decimal*100;
var factor = Math.round(decimal/25)
decimal  = n + 0.25*factor;

答案 4 :(得分:1)

如果Jon Taylorlors的答案不明显,使用if语句解决此问题的适当方法如下:

var floorValue = Math.floor(value);
var remainder = value - floorValue;
if (remainder < 0.325) {
    if (remainder < 0.125) {
        newValue = floorValue;
    } else {
        newValue = floorValue + 0.25;
    }
} else {
    if (remainder < 0.625) {
        newValue = floorValue + 0.5;
    } else if (remainder < 0.875) {
        newValue = floorValue + 0.75;
    } else {
        newValue = floorValue + 1;
    }
}