【问题标题】:how to add n number of input value with javascript如何用javascript添加n个输入值
【发布时间】:2017-04-29 06:33:06
【问题描述】:

朋友们,我想要我在字段中输入的数字的总和,这些输入值的总和等于我的总值。当我添加这些输入值时,它显示一个 Nan 错误,请帮助

这是我的正文内容

    <form action="" method="post">
    <input type="text" name="cnum" placeholder="enter no. of input">
    <input type="submit" name="submit" >
    </form>
    <?php
    if(isset($_POST['cnum']))
    {
        $cnum=$_POST['cnum'];
        $i=0;
        ?>
    <form action="" method="post">
        <input type="hidden" name="total" id="total" value="10">
        <input type="hidden" name="cnum" id="cnum" value="<?php echo $cnum ;?>">
        <?php
        while($i<$cnum)
        {
            ?>
                <input type="number" id="aq<?php echo $i; ?>" onKeyup="add()" name="aq<?php echo $i; ?>"><br />
            <?php
            $i++;
        }
    ?>
        <input type="submit" name="aqsub">
    </form>
    <?php
    }
    ?>

这是我的java脚本函数

var val=0;
var total=document.getElementById('total').value;
var cnum=document.getElementById('cnum').value;
var anum;
function add()
{
var n=0;
while(n<cnum)
{
    anum = 0;
    if(document.getElementById('aq'+n).value != "")        {            
            anum=parseInt(document.getElementById('aq'+n).value);
        }
    val += anum;
    n++;
}
alert(val);

}

【问题讨论】:

  • 我认为您是在比较 totalanum 而不是 val
  • @JYoThl OP 已经收到关于您的回答的通知。无需向他发送垃圾邮件...
  • 我想要我在字段中输入的数字的总和

标签: javascript php input add


【解决方案1】:

更新JS部分:

var total=document.getElementById('total').value;
total = parseInt(total);
var cnum=document.getElementById('cnum').value;
cnum= parseInt(cnum);

function add()
{
var anum;
var val=0;
var n=0;
while(n<cnum)
{
    anum = 0;
    var temp = document.getElementById('aq'+n).value;
    if( temp != "")        {            
            anum=parseInt(temp);
        }
    val = +val + anum;
    n++;
}
alert(val);

}

var total=document.getElementById('total').value;
total = parseInt(total);
var cnum=document.getElementById('cnum').value;
cnum= parseInt(cnum);

function add()
{
var anum;
var val=0;
var n=0;
while(n<cnum)
{
    anum = 0;
    var temp = document.getElementById('aq'+n).value;
    if( temp != "")        {            
            anum=parseInt(temp);
        }
    val = +val + anum;
    n++;
}
alert(val);

}
<form action="" method="post">
        <input name="total" id="total" value="10" type="hidden">
        <input name="cnum" id="cnum" value="10" type="hidden">
                <input id="aq0" onkeyup="add();" name="aq0" value="" type="number"><br>
                    <input id="aq1" onkeyup="add();" name="aq1" value="" type="number"><br>
                    <input id="aq2" onkeyup="add();" name="aq2" value="" type="number"><br>
                    <input id="aq3" onkeyup="add();" name="aq3" value="" type="number"><br>
                    <input id="aq4" onkeyup="add();" name="aq4" value="" type="number"><br>
                    <input id="aq5" onkeyup="add();" name="aq5" value="" type="number"><br>
                    <input id="aq6" onkeyup="add();" name="aq6" value="" type="number"><br>
                    <input id="aq7" onkeyup="add();" name="aq7" value="" type="number"><br>
                    <input id="aq8" onkeyup="add();" name="aq8" value="" type="number"><br>
                    <input id="aq9" onkeyup="add();" name="aq9" value="" type="number"><br>

【讨论】:

  • @prashantkushwah 如果这解决了您的问题,请接受答案。
【解决方案2】:

在您的 javascript 中添加以下代码

cnum = parseInt(cnum);

【讨论】:

  • 解释为什么这是一个解决方案
  • OP 已经在这里使用了 parseInt anum=parseInt(document.getElementById('aq'+n).value);
  • 他将“cnum”与“n”值进行比较,n 值是整数值,所以我认为这是问题所在.. cnum 和 anum 都是不同的变量。
【解决方案3】:

更新代码为:

var total= parseInt(document.getElementById('total').value);

当您使用totalanum 进行比较时。所以总和一定是错误的南

【讨论】:

    【解决方案4】:

    嗯,我不明白你的逻辑,但你得到 NAN 因为你的字段值是空白的。

    试试这个代码

    var val=0;
    var total=document.getElementById('total').value;
    var cnum=document.getElementById('cnum').value;
    var anum;
    function add()
    {
        var n=0;
        while(n<cnum)
        {
            anum = 0;
            if(document.getElementById('aq'+n).value != "")        {            
                    anum=parseInt(document.getElementById('aq'+n).value);
                }
            val += anum;
            n++;
        }
        if(total==anum)
        {
            alert('Its Work');
        }
        else
        {
            alert('Its not Work');
        }
    
    }
    

    【讨论】:

      【解决方案5】:

      为什么不直接将 PHP var 包含到 JS var 中?

      var cnum=<?php echo $cnum ;?>;
      

      也可以检查“”,然后使用零

      parseInt(input.value)||0;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多