【问题标题】:add two textbox values in jquery after getting by JSON通过JSON获取后在jquery中添加两个文本框值
【发布时间】:2012-02-14 09:57:22
【问题描述】:

我有三个具有 ID 的文本框:textbox1、textbox2、textbox3。我正在通过 JSON 从 combo1.jsp 中检索前两个文本框的值,我想添加这两个值并将其显示在第三个文本框中。第一个文本框和第二个文本框的值来自数据库,我只想添加这两个值并显示在第三个文本框中。

  $("#combo1").change(function() {
$.getJSON('combo1.jsp', { combo1Val : $(this).val() }, function(data) {
 $("#textbox1").val(data.a);// suppose a's value came as 10 from db
$("#textbox2").val(data.b);// b's value came as 20 from db
 $("#textbox3").val(data.c);// here i want to show the sum(a+b) that is 30
});
});

有什么想法吗?

【问题讨论】:

    标签: javascript jquery json


    【解决方案1】:

    试试这个:

    $("#combo1").change(function() {
        $.getJSON(
            'combo1.jsp', 
            { combo1Val : $(this).val() }, 
            function(data) {
                var a = data.a; // suppose a's value came as 10 from db
                var b = data.b; // b's value came as 20 from db
                var total = parseInt(a) + parseInt(b);
    
                $("#textbox1").val(a)
                $("#textbox2").val(b)
                $("#textbox3").val(total); // here i want to show the sum(a+b) that is 30
            }
        );
    });
    

    如果需要,您可以减少它,我只是尽可能清楚地说明它是如何工作的。

    更新

    要在更改任一值后更新总和,请尝试以下操作:

    $("#textbox1, #textbox2").keyup(function() {
        var a = $("#textbox1").val();
        var b = $("#textbox2").val();
        var total = parseInt(a) + parseInt(b);
        $("#textbox3").val(total);
    });
    

    【讨论】:

    • 谢谢罗里,再问一个问题,如果我想编辑值 b 然后在按 TAB 键后,如何相应地更改总和?假设a的值为10,b的值为20,则sum显示为30。现在如果我将b的值编辑为25,那么total的值立即显示为35。我该怎么做?
    • @Rory..我在这里遇到了问题。如果 a 的值为 633,b 的值为 010,那么总计是 641?请提出任何想法如何纠正它
    • @Harry 尝试为该问题打开一个新问题。
    【解决方案2】:

    有点奇怪,但这可以工作:

    $("#textbox3").val(+data.a + +data.b);
    

    同:

    $("#textbox3").val(parseInt(data.a,10) + parseInt(data.b,10));
    

    更新:当从 UI 更改值时添加重新计算功能

    function recompute(){
         var a = parseInt($("#textbox1").val(),10);
         var b = parseInt($("#textbox2").val(),10);
         var sum = a + b;
         $('#textbox3').val( sum );
    }
    
    $('#textbox1,#textbox2').change(recompute);
    

    【讨论】:

    • @jerjer..如果你能提供一个想法,请看看我对 Rory 的回答的 cmets
    • 1 个要添加的东西,parseInt(value) 不指定基数,如果值以 0 开头,如 010,将产生不正确的结果,javascript 将它们视为非十进制值
    • parseInt(value, 10); //10- 是基础,应该更正它
    • 是的,但我怎样才能像 parseInt(value, 10); 一样将值添加为 10; ,它来自 db,所以它可能是任何值。 a 的值可以是 10、20、30 等。
    • base 只是 parseInt 函数的一个附加参数,用于告诉 javascript 你想要一个十进制结果而不是八进制值
    【解决方案3】:
    $("#combo1").change(function() {
    $.getJSON('combo1.jsp', { combo1Val : $(this).val() }, function(data) {
     $("#textbox1").val(data.a);// suppose a's value came as 10 from db
    $("#textbox2").val(data.b);// b's value came as 20 from db
     $("#textbox3").val(parseInt(data.a)+parseInt(data.b));// here i want to show the sum(a+b) that is 30
    });
    });
    

    【讨论】:

    • @Akhil..感谢您对我的解决方案的回复
    【解决方案4】:
    $("#combo1").change(function() {
      $.getJSON('combo1.jsp', { combo1Val : $(this).val() }, function(data) {
        $("#textbox1").val(data.a);// suppose a's value came as 10 from db
        $("#textbox2").val(data.b);// b's value came as 20 from db
    
        var c = $("#textbox2").val() + $("#textbox1").val();
       $("#textbox3").val(c);
     });
    });
    

    【讨论】:

    • @kynsai..感谢您的回复,上面的解决方案对我有用
    【解决方案5】:
    $.getJSON(msg.d,function(i,data){
    
    var a=parseInt(data.a);//after yo get data injsonformat parse it to int 
    var b=parseInt(data.b);
    var total=a+b;//this is just a simple arithematic addition
    $('#textbox3').val(total);//assigning the value to the textbox
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多