我需要在javascript中编写代码,以便在某个时间间隔内接受文本框中的数字(该部分已完成,介于0和16之间),现在我需要它接受1.5,1.75,9.75,0,3.25等数字。所有数字都有夸脱。所有其他数字都应该被拒绝。
已接受=文本框背景为绿色。 已拒绝=文本框背景为红色。
<script type="text/javascript">
function readNumbersAndReturnsArray() { //to fix
var tabNombre = new Array()
for (var i = 0; i < 7; i++){
var strNombre = document.getElementById('tbNbHrs' + i).value
if (isAnEmptyString(strNombre) || !containsNumbersOnly(strNombre))
{
var strMiseEnForme = 'sNotNumber'
}
else if (!estDansIntervalle(strNombre,'0','16'))
{
var strMiseEnForme = 'sOutOfLimit'
}
else if(-----------) //this is the part where I should accept numbers and their quarts only (0, 0.25, 0.5, 0.75, 1, 1.25, etc.)
{
var strMiseEnForme = 'sNotQuart'
}
else
{
var strMiseEnForme = 'sValid'
strNombre = Number(strNombre)
tabNombre.push(strNombre)
}
document.getElementById('tbNbHrs' + i).className = strMiseEnForme
}
return tabNombre
注意:所有其他功能已经在js库中工作和编码。
答案 0 :(得分:0)
解决方案是使用模数运算符。模数运算符返回除法运算的余数。
模数运算符在javascript和许多其他语言中表示为%。
例如:
您列出的所有数字均为“有效”(1,1.25,3.75等)可被0.25整除。只需使用模数运算符,看看是否得到0的余数。如果是,那么数字可以被0.25整除并且是有效的。
你的if语句应该是:
if(strNombre % 0.25 == 0){
// VALID: Number is 1.75, 2, 2.25 etc.
}else{
// INVALID
}