JQuery добавление 2 чисел из полей ввода

Я пытаюсь добавить два значения предупреждающих ящиков, но я продолжаю получать пустое поле оповещения. Я не знаю, почему.

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

Ответ 1

Добавление строк объединяет их:

> "1" + "1"
"11"

Сначала вы должны разобрать их в числа:

/* parseFloat is used here. 
 * Because of it 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);
});

В противном случае вы используете значения текстовых полей с момента загрузки страницы.

Ответ 2

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

Ответ 3

Есть два способа добавить два числа в 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);

Ответ 4

Используйте этот код для добавления двух чисел с помощью 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>

Ответ 5

Хорошо, так что ваш код действительно работает, но вам нужно сделать замену a и b в вашей функции click с помощью jquery-нотации, которую вы использовали до щелчка. Это обеспечит правильные и самые последние значения. поэтому изменение функции клика на это должно работать:

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

или inlined:

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

Ответ 6

Этот код работает, вы можете сравнить его с вашим?

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