检查表单字段中的值是否超过某个数字

时间:2013-01-10 19:26:35

标签: javascript webforms

我正在尝试编写一个简单的检查来查看字段是否填写了超过5的值。我已经设置了一个表单并放入了一些文本字段,其中一个字段将需要一美元量。我正在试图检查这笔美元金额是否超过5美元,如果不是只是弹出警报让用户知道它不超过5美元。我到目前为止的代码是:

    <script>
    function validateForm()
    {
        var x=document.forms["amnt"]["Amount"].value;
        if (x<5)
        {
            alert("value is under 5 dollars!");
            return false;
        }

    }
</script>

此脚本适用于检查字段是否为空的情况,但是当我尝试更改字段的值以检查字段的值时,它只是让用户继续,即使该值低于5.

任何人都可以提供任何有关如何检查该字段的实际数值并查看其是否高于5美元金额的反馈吗?

编辑:感谢所有的答案,他们没事,我是一个白痴,忘了包含表单的onsubmit选项,所以它没有做我的任何脚本。现在,这已经解决了你们所有人提出的好建议。感谢所有的帮助,抱歉混淆了!

4 个答案:

答案 0 :(得分:3)

试试这个:

var x=parseInt(document.forms["amnt"]["Amount"].value);

答案 1 :(得分:1)

拨打.value时收到一个字符串。您应该比较整数,因此请使用parseInt()

<script>
    function validateForm()
    {
        var x = parseInt(document.forms["amnt"]["Amount"].value);
        if (x<5)
        {
            alert("value is under 5 dollars!");
            return false;
        }

    }
</script>

答案 2 :(得分:1)

我使用parseInt并将其第二个参数设置为10,因此它使用基数10解析输入。

var x=parseInt(document.forms["amnt"]["Amount"].value, 10);

如果省略参数,在某些(较旧的)浏览器中可能会出现类似情况。

parseInt('09')== 0(它被解析为八进制,因为前导为0)

parseInt('09',10)== 9(强制小数)

答案 3 :(得分:1)

<script>
function validateForm()
{
    var x = parseInt(document.forms["amnt"]["Amount"].value);
    if (x && Number(x)<5)
    {
        alert("value is under 5 dollars!");
        return false;
    }

}
</script>