簡體   English   中英

jQuery克隆單擊添加更多按鈕,如果我選擇上一行日期未更新,並且單擊刪除時,頂部總結果值未減少

[英]JQuery clone click add more button if i select the previous row date not updating and when click delete the top total result value was not reducing

目前,我正在使用jquery clone並使用日期選擇器計算從日期到顯示在面板頂部的日期。 使用我的當前代碼,我可以克隆該行並添加兩個日期值,但是當我單擊Delete按鈕時,它正在刪除克隆的行,但是並沒有更新示例頂部的總結果標簽。

這是我的刪除按鈕代碼:

$(document).on('click', ".btn_less1", function() {
  var len = $('.cloned-row3').length;
  if (len > 1) {
    var RemoveStartDate = $(this).closest(".btn_less1").parent().parent().parent().find('.startDate ').val();
    var RemoveEndDate = $(this).closest(".btn_less1").parent().parent().parent().find('.endDate  ').val();

    if ((RemoveStartDate != '') || (RemoveEndDate != '')) {
      var dateStartArray = RemoveStartDate.split('/'),
        dateEndArray = RemoveEndDate.split('/');
      var fromdate = new Date(dateStartArray[2], dateStartArray[0] - 1, dateStartArray[0]),
        todate = new Date(dateEndArray[2], dateEndArray[0] - 1, dateEndArray[0]);

      var yearsDifference = todate.getFullYear() - fromdate.getFullYear();
      var monthsDifference = (todate.getMonth() + 12 * todate.getFullYear()) - (fromdate.getMonth() + 12 * fromdate.getFullYear());

      var PrevTotalYear = parseInt($("#txt_expy>span").text());
      var PrevTotalMonth = parseInt($("#txt_expm>span").text());


      $("#txt_expy>span").text('');
      $("#txt_expm>span").text('');

      PrevTotalYear = PrevTotalYear * 12;

      var CurTotalYear = Math.floor(((PrevTotalYear + PrevTotalMonth) - monthsDifference) / 12);
      var CurTotalMonth = (monthsDifference - PrevTotalMonth) % 12;


      $("#txt_expy>span").text(CurTotalYear);
      $("#txt_expm>span").text(CurTotalMonth);
      $(this).closest(".btn_less1").parent().parent().parent().remove();
    } else {
      $(this).closest(".btn_less1").parent().parent().parent().remove();
    }
  }
});

當用戶選擇日期為12/01/2000以及日期為12/01/2003時

其結果將是總的工作經驗3年0個月

如果用戶單擊添加更多按鈕,它將創建另外一行

從日期12/01/2004到日期12/01/2015

結果將是使用我的代碼獲得的總工作經驗15年0個月。 這按我預期的那樣工作。

當用戶單擊刪除按鈕時,它將刪除該行,但不會更新總工作經驗;如果單擊“添加更多”按鈕,如果我嘗試修改以前的日期,並且至今也沒有更新,則該行也不會更新。

這是小提琴鏈接

提前致謝

您的問題是原始HTML像這樣開始:

<label class="years_lab" id="txt_expy"><span>0</span>Years</label>

更改值時,可以這樣設置值:

document.getElementById("txt_expy").innerHTML

這將設置標簽的內部並刪除span元素。 當您嘗試重新計算總數時,您可以像這樣選擇它:

$("#txt_expy>span")

但這將返回一個空的jQuery對象,因為該范圍不再存在。

小提琴: http : //jsfiddle.net/bqgjro6d/41/

我將最后兩行更改為:

document.getElementById("txt_expy").innerHTML = diffYears;
document.getElementById("txt_expm").innerHTML = diffMonths;

至:

$("#txt_expy>span").text(diffYears);
$("#txt_expm>span").text(diffMonths);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM