在javascript中验证十进制

时间:2013-12-10 20:12:48

标签: javascript validation decimal

您好我想知道如何为具有两个小数位的数字编写验证码,例如45.80

function submitform4()
{

    var min=00.01;
    var max = 100.00;
    var num = parseInt(document.getElementById('valid').value);

    console.log(num);

    if (min > num || max < num) {
        alert(num + ' is not between ' + min + ' and ' + max);
    return false;
    }
}

这是我从我的工作中复制的东西,并认为我可以改变它,但没有真正起作用。

4 个答案:

答案 0 :(得分:1)

你可以这样做:

function submitForm(numberToEvaluate){
    var min = 0.0;
    var max = 100;

    //Instead of being passed in
    //This would be grabbed from DOM element
    var num = numberToEvaluate;


    console.log(num);

    if (min > num || max < num) {
        alert(num + ' is not between ' + min + ' and ' + max);
        return false;
    }
}

submitForm(-1);
submitForm(37);

答案 1 :(得分:1)

嗯,这就是我要做的,如果我理解正确的话。

这解决了一些问题:

  • JavaScript不喜欢数值00.01。请改用0.01
  • parseFloat值上使用inputparseInt将舍入为整数
  • 如果成功(未定义),则返回true

function submitform4() {
    var MIN = 0.01;
    var MAX = 100.00;

    var input = document.getElementById('AgeGrade');
    var inputValue = parseFloat(input.value);

    var is_valid = (MIN > inputValue || MAX < inputValue);

    if (is_valid) {
        input.value = inputValue.toFixed(2); // set to 2 decimal places
        return true
    } else {
        alert(inputValue + ' is not between ' + MIN + ' and ' + MAX);
        return false;
    }
}

答案 2 :(得分:0)

我会尝试parseFloat():

function submitform4()
{
  var min = parseFloat("00.01");
  var max = parseFloat("100.00");
  var num = parseFloat("200.20");
  console.log(num);
  if (min > num || max < num) {
    alert(num + ' is not between ' + min + ' and ' + max);
    console.log('false');
  }
}
submitform4();

请参阅Feedle

否则你肯定有错误:

  

未捕获的SyntaxError:意外的数字

请参阅无法正常工作 Feedle

答案 3 :(得分:0)

代码看起来很好(几乎),取决于你打算如何使用我的功能。

如果您在提交之前使用该函数作为验证,例如if(submitform4()),则需要在函数末尾添加return true;以返回true,除非答案为false。