jQuery从输入字段中添加2个数字

15

我试图将两个弹出框的值相加,但我一直得到一个空弹出框。我不知道为什么。

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

54

将字符串添加在一起即可进行串联:

> "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);
});
否则,您将使用页面加载时文本框的值。

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>

6

有两种方法可以在jQuery中添加两个数字

第一种方式:

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

第二种方式:

var x = parseInt(a+2);
alert(x);
现在轮到你提问了。
var a = parseInt($("#a").val()); 
var b = parseInt($("#b").val());
alert(a+b);

parseInt将数字解析为整数,您确定这些数字是整数吗? - tripulse

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>

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);

-2

好的,你的代码实际上是可以工作的,但你需要做的是用之前在 click 函数中使用的 jQuery 表示法替换 a 和 b。这将确保你拥有正确和最新的值。所以将你的 click 函数更改为以下内容应该可以工作:

$("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+/));         
})

-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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,