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 に答える
1

あなたのJavaScriptコードは機能していますが、送信が実行されています。type='submit' を type='button' に切り替えるだけで、2 つの数値が結合されているのは、それが文字列なのか数値なのかがわからないためです。 innerHTML=parseInt(a + b); display.innerHTML=a + b; の代わりに それはあなたの他の問題を解決するはずです。

于 2013-01-04T21:54:14.323 に答える
1

2 つの文字列を一緒に追加しようとしています。最初にそれらを整数に解析する必要があります: 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 に答える