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