2012-05-08 58 views
-1

我从用户那里获得输入,它需要是整数或0.5的某个倍数。验证输入的数字是整数还是“一半”

例如,7,235.5都是有效的,但3.12.7不是。

换句话说,如果用户键入2.3,将会有一个警告,告诉他们他们只能键入2.5

我该如何去执行此验证?

+2

你的问题是什么? –

回答

2

因为他们正在输入字符串,并且浮点数很难得到正确的:-)我建议检查字符串输入本身,之前转换为浮点数。

如果它包含.字符,请确保最后两个字符是.5

您可能还想检查其他情况,具体取决于您希望允许的情况。例如,7.0可能与2.50000000一样有效。

但是,为了简单起见,我只是说,输入必须是一个整数,或以.5结尾。

+0

哦,我不知道。似乎真的应该有足够的精度浮点数,以获得1位小数点的权利。 –

+0

是的,但是如果用户_enters_'2.4999999999999999',你想抱怨它还是让它默默修改为'2.5'? – paxdiablo

+1

我会尽量接近政府的工作。但你说得对;只需将最后一位数字限制为0或5就足够了。 –

1
$('button').on('click', function() { 

var val = Number($('input[type=text]').val()).toFixed(1); 
if(val % 0.5) { 
    alert('This value should' + (parseInt(val) + 0.5)); 
} 

}); 
+2

2.6呢? –

+0

啊,我不确定我是否会与确切的平等。 :)浮动并不总是等同的迹象。 –

+0

为什么不能:'if(this.value%0.5)/ *值不是0.5的倍数* /' – RobG