Asked Sep 7th, 2021 3:25 p.m. 204 0 4
  • 204 0 4
0

Jquery select sau khi load Ajax

Share
  • 204 0 4

Hi all,

Hiện tại mình đang có vấn đề nhờ mọi người có kinh nghiệm giúp. Minh load một cái list từ ajax lên (như hình), mình muốn select vào các ô "Line Total" để tính tổng giá trị , các ô này là input có chung class="lineTotal", nếu bình thường load từ html lên thì không sao, nhưng load ajax lên thì thường dùng hàm on.() Search Google cả buổi không tìm ra hướng.

Ai có kinh nghiệm thì giúp mình với. Thanks.

4 ANSWERS


Answered Sep 8th, 2021 3:25 a.m.
Accepted
0

Bạn đổi thử sang kiểu dưới được ko?

$('.lineTotal').on('click', function() {
  console.log(111)
})

$(document).on('click', '.lineTotal', function() {
  console.log(111)
})
Share
Avatar Jake Long @longhiryu
Sep 8th, 2021 5:07 a.m.

à cách này thì mình on được chỉ 1 cái ô mà mình click thôi, ý mình là gom giá trị tất cả các ô Line Total để cộng tổng á.

0
| Reply
Share
Answered Sep 8th, 2021 8:33 a.m.
0

ý bạn là lấy tổng như vậy à ? $(document).on('click', '.lineTotal', function() { var total = 0; (".lineTotal").each(function(){ total += parseInt((this).val()); }); })

Share
Answered Sep 10th, 2021 2:16 a.m.
0

Ý bạn là muốn lấy tất cả các gí trị trong Line Total cộng lại và fill vào ô Total ở bên tay trái?

Share
Answered Sep 10th, 2021 10:27 a.m.
0

Hi @longhiryu

  • hàm Ajax trong Jquery, có hỗ trợ tuỳ chọn success là một function. Nghĩa là khi request thưc hiện xong thì function này sẽ được gọi. Bạn có thể tính tổng các record trong hàm này, vì mình đoán data của bạn nhận về là 1 array và mỗi phẩn tử sẽ có thuộc tính lineTotal. Xem thêm tại https://api.jquery.com/jquery.ajax/
  • Còn trường hợp bạn muôn tính tổng tất cả lineTotal khi user click vào một button nào đó. Bạn có thể select tất cả input có class lineTotal như sau
    (".lineTotal").each(function() {
      const val = $(this).val();
      total += parseInt(val); 
    });
    
    xem thêm hàm each tại https://api.jquery.com/each/#each-function
Share
Viblo
Let's register a Viblo Account to get more interesting posts.