【问题标题】:checking if the value from a form field is over a certain number检查表单字段中的值是否超过某个数字
【发布时间】:2013-01-10 19:26:35
【问题描述】:

我正在尝试编写一个简单的检查来查看某个字段是否填写了超过 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 选项,所以它没有执行我的任何脚本。现在已经解决了你们提出的每一个好的建议都很好。感谢大家的帮助,很抱歉混淆了!

【问题讨论】:

  • 试试var x=+document.forms["amnt"]["Amount"].value);(带+)
  • @Mageek = "6" &lt; 5false
  • @JosephSilber 是的。还有+"6" &lt; 5
  • @Mageek - 当然。但如果"6" &lt; 5 对他不起作用,+"6" &lt; 5 也不会。事件侦听器可能没有返回 false
  • @Mageek - 当然是。这里发生了一些可疑的事情。我希望 OP 很快就会重新审视这个问题。

标签: javascript webforms


【解决方案1】:

试试这个:

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

【讨论】:

  • 如果您能解释原因会很有帮助。
  • 元素值是字符串,所以必须转换成数字才能和数字比较
【解决方案2】:

当您调用.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>

【讨论】:

    【解决方案3】:

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

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

    如果您省略该参数,在某些(较旧的)浏览器中可能会发生这种情况。

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

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

    【讨论】:

    • 仅供参考,在前面添加 + 等同于 parseInt,基数设置为 10
    【解决方案4】:
    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 2020-03-23
      • 1970-01-01
      相关资源
      最近更新 更多