2012-02-14 2 views
1

У меня есть три текстовых поля с идентификаторами: textbox1, textbox2, textbox3. Я извлекаю значения для первых двух текстовых полей из combo1.jsp by JSON, и я хочу добавить эти два значения и отобразить их на 3-м текстовом поле. Значения 1-го текстового поля и 2-го текстового поля поступают из db, только я хочу добавить эти два значения и отобразить их в третьем текстовом поле.добавить два значения текстового поля в jquery после получения JSON

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

Любые идеи, пожалуйста?

ответ

4

Попробуйте это:

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

Вы можете сократить это вниз, если это необходимо, я только что сделал это так ясно, насколько это возможно, как это работает.

UPDATE

Чтобы обновить сумму после изменения либо значения, попробуйте следующее:

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

благодаря Рори, только один вопрос, если я хочу отредактировать значение b, то после нажатия клавиши TAB, как сумма может быть изменена соответствующим образом? предположим, что значение a получилось как 10, значение b было равно 20, тогда сумма отображается как 30. Теперь, если я отредактирую значение b до 25, тогда сразу значение total отобразит 35. Как я могу это сделать? – harry

+0

@ Харри Я только что обновил свой ответ, чтобы показать вам. –

+0

@ Rory..thanks много да, это сработало – harry

0
$("#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 
}); 
}); 
+1

@ Akhil..thanks для вашего ответа гораздо выше решение работал для меня – harry

1

Немного странно, но это может работать:

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

То же, что:

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

UPDATE: добавлена ​​функция Recompute при изменении значений из 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); 
+0

@ jerjer..пожалуйста, посмотрите мои комментарии на ответ Рори, если вы можете дать идею – harry

+0

@harry, пожалуйста, см. Выше обновленный ответ – jerjer

+0

@ jerjer..thanks для вашего ответа i ответили на ваш ответ – harry

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

@ kynsai..thanks для вашего ответа значительно выше решения работал на меня – harry

0
$.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 

} 
Смежные вопросы