在JQuery中,数字有时添加不正确
此代码位于jquery移动表单中。它将数字相加,并在禁用的文本框中显示总数。当总数为100时,将启用“继续(提交)”按钮。在JQuery中,数字有时添加不正确,jquery,Jquery,此代码位于jquery移动表单中。它将数字相加,并在禁用的文本框中显示总数。当总数为100时,将启用“继续(提交)”按钮。 当没有值时,会话var代码正确地放入零。 问题: 有时人们会在零后面键入数字(例如:0100)。 似乎这样,再加上删除一个数字会导致数字不能正确相加。 我需要你的帮助: 消除计算总数时的随机错误,尤其是当值被清除时。我应该改用parseInt吗 提前谢谢 <script> $(document).ready(function() { <?php i
当没有值时,会话var代码正确地放入零。
问题: 有时人们会在零后面键入数字(例如:0100)。
似乎这样,再加上删除一个数字会导致数字不能正确相加。
我需要你的帮助:
消除计算总数时的随机错误,尤其是当值被清除时。我应该改用parseInt吗 提前谢谢
<script>
$(document).ready(function() {
<?php
if (!isset($_SESSION['num1'])) {
echo "$('#num1').val(0);";
}
if (!isset($_SESSION['num2'])) {
echo "$('#num2').val(0);";
}
if (!isset($_SESSION['num3'])) {
echo "$('#num3').val(0);";
}
if (!isset($_SESSION['num4'])) {
echo "$('#num4').val(0);";
}
?>
//to handle previously entered values if back button used: <br/>
var tot = ($('#num1').val() - 0) +
($('#num2').val() - 0) +
($('#num3').val() -0) +
($('#num4').val() - 0);
$('#total').val(tot);
if (tot==100) {
$('#continue').removeAttr('disabled');
} else {
$('#continue').attr("disabled","disabled");
}
//to handle numbers on update.
$('input[name^="int"]').keypress(function() {
var tot = ($('#num1').val() - 0) +
($('#num2').val() - 0) +
($('#num3').val() -0) +
($('#num4').val() - 0);
$('#total').val(tot);
if (tot==100) {
$('#continue').removeAttr("disabled");
} else {
$('#continue').attr("disabled","disabled");
}
});
$(文档).ready(函数(){
要仅使用一行代码从输入中获取int,请执行以下操作:
var n=parseInt($('#num').val(),10)||0;
尝试使用parseInt($('#num').val(),10)
而不是$('#num').val()-0
将字符串转换为数字您应该改用parseInt
。但是,请确保正确使用它:
parseInt("09",10); // equals 9
parseInt("09); // equals zero, because it thinks it's an octal number
此方法将从字符串中提取所有数字(以及小数点和减号),然后尝试将它们转换为数字。如果给定一个类似“5.36.31”的字符串(或者如果用户的本地区域使用逗号而不是句点来表示小数),此方法仍将失败。你为什么这么努力地重新发明轮子?这正是parseInt
和parseFloat
的目的。@mblase75很好很好,你是对的。进一步修改。我很高兴能够使用相同的提取方法获得浮点或int。