Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JQuery中,数字有时添加不正确_Jquery - Fatal编程技术网

在JQuery中,数字有时添加不正确

在JQuery中,数字有时添加不正确,jquery,Jquery,此代码位于jquery移动表单中。它将数字相加,并在禁用的文本框中显示总数。当总数为100时,将启用“继续(提交)”按钮。 当没有值时,会话var代码正确地放入零。 问题: 有时人们会在零后面键入数字(例如:0100)。 似乎这样,再加上删除一个数字会导致数字不能正确相加。 我需要你的帮助: 消除计算总数时的随机错误,尤其是当值被清除时。我应该改用parseInt吗 提前谢谢 <script> $(document).ready(function() { <?php i

此代码位于jquery移动表单中。它将数字相加,并在禁用的文本框中显示总数。当总数为100时,将启用“继续(提交)”按钮。

当没有值时,会话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。