4

我试图在与表单相同的页面上显示表单结果,但是当我单击“获取总计”按钮时,我看到结果短暂出现然后消失。我的结果也关闭了,我正在尝试将我的变量添加在一起,但我正在加入。

<form id="percentageBiz" method="post">
<input type="text" id="sum1">
<input type="text" id="sum2">
<input type="submit" onclick="total()" value="Get Total">

<div id="display" style="height: 50px; width: 100%;"></div>

<script>
function total(){
    var a = document.forms["percentageBiz"]["sum1"].value;
    var b = document.forms["percentageBiz"]["sum2"].value;
    //alert(a+b)
    var display=document.getElementById("display")
    display.innerHTML=a+b;
}
</script>
4

5 回答 5

9

它闪烁是因为您没有做任何事情来阻止表单提交,并且连接是因为您没有将值转换为数字。请注意,如果您正在处理非整数而不是parseInt ,则可以使用parseFloat ,如下所示。

试试这个jsFiddle 示例

function total(){
    var a = document.forms["percentageBiz"]["sum1"].value;
    var b = document.forms["percentageBiz"]["sum2"].value;
    //alert(a+b)
    var display=document.getElementById("display")
    display.innerHTML=parseInt(a,10)+parseInt(b,10);
    return false;
}​

<form id="percentageBiz" method="post">
<input type="text" id="sum1">
<input type="text" id="sum2">
<input type="submit" onclick="return total()" value="Get Total">
</form>
<div id="display" style="height: 50px; width: 100%;"></div>​
于 2013-01-04T21:53:46.020 回答
4

“结果短暂出现然后消失。”

  1. Try using input type="button" rather than input type="submit".
  2. OR Else ( while using input type="submit" ) avoid form submission, by returning false in function total() and put onclick="return total( )".
于 2014-04-22T20:32:51.387 回答
1

发生的事情是您的 javascript 代码正在运行,但随后提交正在执行。您需要做的就是将 type='submit' 切换为 type='button' ,您将两个数字连接在一起的原因是因为它不知道它是字符串还是数字,所以如果你把 display. innerHTML=parseInt(a + b); 而不是 display.innerHTML=a + b; 它应该可以解决您的其他问题。

于 2013-01-04T21:54:14.323 回答
1

您正在尝试将两个字符串添加在一起。您应该首先将它们解析为整数: http ://www.javascripter.net/faq/convert2.htm

    <form id="percentageBiz" method="post">
<input type="text" id="sum1">
<input type="text" id="sum2">
<input type="submit" onclick="total()" value="Get Total">

<div id="display" style="height: 50px; width: 100%;"></div>

<script>
function total(){
    var a = parseInt(document.forms["percentageBiz"]["sum1"].value);
    var b = parseInt(document.forms["percentageBiz"]["sum2"].value);
    //alert(a+b)
    var display=document.getElementById("display")
    display.innerHTML=a+b;
}
</script>

您不应该将它们乘以 1 进行转换,因为这是将字符串解析为整数并将其乘以 1。所以这是一个额外的步骤。

于 2013-01-04T21:55:54.093 回答
0

你得到的是一个连接而不是一个总和,因为你总是得到字符串值。

例如,您可以将它们乘以 1,然后您的 var 将被视为一个数字。

于 2013-01-04T21:52:41.777 回答