14

我正在尝试添加两个警报框值,但我不断收到一个空白警报框。我不知道为什么。

$(document).ready(function(){
    var a = $("#a").val();
    var b = $("#b").val();   
    $("submit").on("click", function(){
        var sum = a + b;
        alert(sum);         
    })
})
4

7 回答 7

50

添加字符串将它们连接起来:

> "1" + "1"
"11"

您必须先将它们解析为数字:

/* parseFloat is used here. 
 * Because of it's not known that 
 * whether the number has fractional places.
 */

var a = parseFloat($('#a').val()),
    b = parseFloat($('#b').val());

此外,您必须从点击处理程序内部获取值:

$("submit").on("click", function() {
   var a = parseInt($('#a').val(), 10),
       b = parseInt($('#b').val(), 10);
});

否则,您将使用页面加载时文本框的值。

于 2013-04-29T00:02:11.140 回答
7
<script type="text/javascript">
    $(document).ready(function () {
        $('#btnadd').on('click', function () {
            var n1 = parseInt($('#txtn1').val());
            var n2 = parseInt($('#txtn2').val());
            var r = n1 + n2;
            alert("sum of 2 No= " + r);
            return false;
        });
        $('#btnclear').on('click', function () {
            $('#txtn1').val('');
            $('#txtn2').val('');
            $('#txtn1').focus();
            return false;
        });
    });
</script>
于 2013-12-13T07:19:31.683 回答
5

There are two way that you can add two number in jQuery

First way:

var x = parseInt(a) + parseInt(b);
alert(x);

Second Way:

var x = parseInt(a+2);
alert(x);

Now come your question

var a = parseInt($("#a").val()); 
var b = parseInt($("#b").val());
alert(a+b);
于 2014-07-04T09:28:20.870 回答
2

使用此代码通过使用 jquery 添加两个数字

<!DOCTYPE html>
    <html lang="en-US">
    <head>
        <title>HTML Tutorial</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <meta charset="windows-1252">
    <script>

    $(document).ready(function(){
        $("#submit").on("click", function(){
        var a = parseInt($('#a').val());
        var b = parseInt($('#b').val());
           var sum = a + b;
            alert(sum);
        })
    })
    </script>
    </head>
    <body>
       <input type="text" id="a" name="option">
       <input type="text" id="b" name="task">
    <input id="submit" type="button" value="press me">

    </body>

    </html>
于 2017-12-21T11:58:02.797 回答
0

对于有 2 位小数的金额字段。

var a = parseFloat($('#a').val()).toFixed(2),
    b = parseFloat($('#b').val()).toFixed(2);

alert(parseFloat(parseFloat(a) + parseFloat(b)).toFixed(2));

如果你只有整数,你可以使用parseInt()

var a = parseInt($("#a").val()),  
     b = parseInt($("#b").val()); 

alert(a+b);
于 2022-01-24T13:10:33.443 回答
-2

该代码有效,您可以将其与您的代码进行比较吗?

<!DOCTYPE html>
<html lang="en-US">
<head>
    <title>HTML Tutorial</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <meta charset="windows-1252">
<script>

$(document).ready(function(){
    var a = $("#a").val();
    var b = $("#b").val();   
    $("#submit").on("click", function(){
        var sum = a + b;
        alert(sum);         
    })
})
</script>
</head>
<body>
   <input type="text" id="a" name="option"> 
   <input type="text" id="b" name="task"> 
<input id="submit" type="button" value="press me">

</body>

</html>
于 2013-04-29T00:08:35.577 回答
-2

好的,所以您的代码实际上可以工作,但是您需要做的是用单击之前使用的 jquery 表示法替换单击函数中的 a 和 b。这将确保您拥有正确且最新的值。因此将您的点击功能更改为此应该可以工作:

$("submit").on("click", function(){
    var sum = $("#a").val().match(/\d+/) + $("#b").val().match(/\d+/);
    alert(sum);         
})

或内联到:

$("submit").on("click", function(){
    alert($("#a").val().match(/\d+/) + $("#b").val().match(/\d+/));         
})
于 2013-04-29T00:06:07.690 回答