JQuery没有';t验证大于9999的数字

JQuery没有';t验证大于9999的数字,jquery,Jquery,这真的很奇怪 我正在研究的morgage计算器(在此之前我还有一个问题)现在正按照我希望的方式工作,除了。。。。它不会验证大于9999的值 如果你转到下面的链接,你就会明白我的意思 该代码应该确保在预付款和购买价格中输入的值实际上是数字。如果不是,则会出现一条消息,如果是,则代码验证购买价格不大于首付金额 代码是有效的。。。但仅当您输入的值为9999或更低时。如果你这样做,例如。。。1350000和5000首付,代码未提交。如果你做9999和5000,没问题 我真的很困惑。有什么想法吗 这是我

这真的很奇怪

我正在研究的morgage计算器(在此之前我还有一个问题)现在正按照我希望的方式工作,除了。。。。它不会验证大于9999的值

如果你转到下面的链接,你就会明白我的意思

该代码应该确保在预付款和购买价格中输入的值实际上是数字。如果不是,则会出现一条消息,如果是,则代码验证购买价格不大于首付金额

代码是有效的。。。但仅当您输入的值为9999或更低时。如果你这样做,例如。。。1350000和5000首付,代码未提交。如果你做9999和5000,没问题

我真的很困惑。有什么想法吗

这是我的HTML

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <title>Assignment 8.1</title>
    <link rel="stylesheet" type="text/css" href="css/css.css">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <script type="text/javascript" src="js/js.js" charset="utf-8"></script>
</head>

<body>
        <h1>Mortgage Calculator</h1>

    <form action="calc.php" method="post" id="mortgage-form">
        <p class="errorMessage" id="shouldBeNumber">*This value can only contain numbers</p>
        <p id="pPrice"><span class="errorMessage" id="PPmustBeNumber">*</span>Purchase Price:
            <input type="text" name="purchase-price" id="purchase-price" value="0" />   <span class="errorMessage" id="purchasePriceError">Please enter a number value!</span>

        </p>
        <p id="dPayment"><span class="errorMessage" id="DPmustBeNumber">*</span>Down Payment:
            <input type="text" name="down-payment" id="down-payment" value="0" />   <span class="errorMessage" id="downPaymentError">Down payment value must be less than Purchase Price!</span>

        </p>
        <p id="term">Select Term:
            <select name="loan-term" id="loan-term">
                <option value="noValueSelected">-- Select a Term --</option>
                <option value="15yrs">15 Years</option>
                <option value="20yrs">20 Years</option>
                <option value="30yrs">30 Years</option>
            </select><span class="errorMessage" id="termRequired"> * Term is required.</span>

        </p>
        <div id="rate"></div>
        <p>
            <input type="submit" name="submit" id="submit" value="Calculate!" />
        </p>
    </form>
    <footer>
        <p>&copy; Copyright by Ricardo</p>
    </footer>
</body>

</html>

作业8.1
按揭计算器

*此值只能包含数字

*购买价格: 请输入一个数值!

*首付款: 首付金额必须小于购买价格!

选择术语: --选择一个术语-- 15年 二十年 30年 *期限是必需的。

&抄袭;版权归里卡多所有


请在我的JSFIDLE中查看我的jquery

您似乎使用自定义正则表达式模式来检测它是否是一个数字。 为什么不使用本机javascript方法呢

isNaN(val)
检查val是否包含有效数字。 所以在你的情况下,用这个

function containsNumber(val) {
        return !isNaN(val);
}

我想问题在于你的功能:

function containsNumber(val) {
    return /^(\d|,)+$/.test(val)
}
使用以下命令:

function containsNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

我将这三个值改为整数-


确保您检查用户是否添加了美元符号。jQuery在这里可能会有所帮助。这也是我的想法,但当我尝试此操作时,它也失败了。这时会出现这样一条信息:“首付金额必须低于购买价格!”。。即使首付款的值为1,但如果值为9999,则提交罚款。见西蒙的评论;我尝试了他的建议,得到了同样的(负面)结果。哦,我还没有玩过isNumeric。。。也许可以试试。请看杰的建议。通过添加parseInt解决了此问题!谢谢你的建议,西蒙。我试过了,结果还是一样。真奇怪!
    var purchasePrice = parseInt($('#purchase-price').val());
    var downPayment = parseInt($('#down-payment').val());
    var loanTerm = parseInt($('#loan-term').val());