Javascript检查HTML表单字段的小数是.0还是.5

时间:2016-01-29 07:13:03

标签: javascript

我有一个javascript函数,在更改HTML表单字段时触发,只是在输入的数字上添加一个小数(.0)并检查输入的值是否在1到100之间。它工作正常,但现在我需要改变我的功能,也检查输入的十进制数是.0还是.5,如果不匹配则拒绝。这是我的代码:

     function wingsetDecimal(input) {
              input.value = parseFloat(input.value).toFixed(1);
              if (input.value <1 || input.value >100) {
                  alert("Wing Length value is above or below limits");
// accept the value and do not reset field
// input.value ='';
            }
         } 

我不知道如何处理此问题以检查小数部分是.0还是.5。换句话说,如果输入的值是例如10.4,则应该重置字段input.value ='',如果是10.0或10.5,则接受该字段。我试过string.indexOf(".")==-1;没有成功。

2 个答案:

答案 0 :(得分:2)

只是我的两分钱,但也许这样做可以解决问题:

if ((input.value % 1) * 10 === 0 || (input.value % 1) * 10 === 5) {
    // logic comes 'ere
}

或者正如Derek在评论中指出的那样,它的工作方式更短:

if(!(input.value % 0.5)) {
    // todo
}}

答案 1 :(得分:2)

if (!(input.value * 2 % 1)) {
    //there ya go
}