javascript - 动态生成的费用总和

标签 javascript jquery html

我正在设计费用系统,用户可以定义费用组成部分及其本身。我已设法为用户创 build 施,以根据他们的需要定义费用组成部分和费用金额。但是,当我尝试添加它们时,即使我尝试通过向它们分配类来添加它们,这似乎也不起作用。下面是 html 代码:

<html>
    <head>
        <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
        <link rel="stylesheet" href="masterfees.css" />
        <title>feemaster</title>
    <script type="text/javascript" src="ffees.js"></script>
    <script type="text/javascript">
        function totalfixfees(){
            var tffees = 0;
            var cusid_ele = document.getElementsByClassName('ffeetotal');
            for (var i = 0; i < cusid_ele.length; ++i) {
            if (!isNaN(parseFloat(cusid_ele[i].value)) )
            tffees += parseFloat(cusid_ele[i].value);  
            }
            document.getElementById('tffees').value=tffees;
        }
        </script>
    <script></script>
        <style>
        </style>
    </head>
        <body>
<!-- Trigger/Open The Modal for adding fees -->
<button id="myBtn">Add New Fees</button>

<!-- The Modal -->
<div id="myModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <div class="modal-header">
      <span class="close"><button>&#10006;</button></span>
      <h2>Create Fees</h2>
    </div>
    <div class="modal-body">
    <fieldset>
    <legend>Fixed Fees Component</legend>

    <div id="wrapper">
    <table align='center' cellspacing=2 cellpadding=5 id="data_table" border=1>
    <tr>
    <th>Name</th>
    <th>Amount (in Rs)</th>
    </tr>

    <tr id="row1">
    <td id="ffname_row1">Annual Fees</td>
    <td id="ffamount_row1" class="ffeetotal">1000</td>
    <td>
    <input type="button" id="edit_button1" value="Edit" class="edit" onclick="edit_row('1')">
    <input type="button" id="save_button1" value="Save" class="save" onclick="save_row('1')">
    <input type="button" value="Delete" class="delete" onclick="delete_row('1')">
    </td>
    </tr>

    <tr id="row2">
    <td id="ffname_row2">Medical Fees</td>
    <td id="ffamount_row2" class="ffeetotal">2000</td>
    <td>
    <input type="button" id="edit_button2" value="Edit" class="edit" onclick="edit_row('2')">
    <input type="button" id="save_button2" value="Save" class="save" onclick="save_row('2')">
    <input type="button" value="Delete" class="delete" onclick="delete_row('2')">
    </td>
    </tr>

    <tr id="row3">
    <td id="ffname_row3">Tution Fees</td>
    <td id="ffamount_row3" class="ffeetotal">3000</td>
    <td>
    <input type="button" id="edit_button3" value="Edit" class="edit" onclick="edit_row('3')">
    <input type="button" id="save_button3" value="Save" class="save" onclick="save_row('3')">
    <input type="button" value="Delete" class="delete" onclick="delete_row('3')">
    </td>
    </tr>

    <tr>
    <td><input type="text" id="new_ffname"></td>
    <td><input type="number" id="new_ffamount" class="ffeetotal"></td>
    <td><input type="button" class="add" onclick="add_row();" value="Add Row"></td>
    </tr>

    </table>
    </div>
    <br>
    <label> Fixed Fee Total </label>
    <input name="tffees" type="text" id="tffees" class="n1fees" value="" readonly>
    <button onclick="totalfixfees()">Calculate Total Fees</button>
</div>
    <div class="modal-footer">
      <h3></h3>
    </div>
  </div>

</div>
<script>
// Get the modal
var modal = document.getElementById('myModal');

// Get the button that opens the modal
var btn = document.getElementById("myBtn");

// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];

// When the user clicks the button, open the modal
btn.onclick = function() {
    modal.style.display = "block";
}

// When the user clicks on <span> (x), close the modal
span.onclick = function() {
    modal.style.display = "none";
}

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
    if (event.target == modal) {
        modal.style.display = "none";
    }
}
</script>
        </body>
</html> 

JavaScript 是

function edit_row(no)
{
 document.getElementById("edit_button"+no).style.display="none";
 document.getElementById("save_button"+no).style.display="block";

 var ffname=document.getElementById("ffname_row"+no);
 var ffamount=document.getElementById("ffamount_row"+no);

 var ffname_data=ffname.innerHTML;
 var ffamount_data=ffamount.innerHTML;

 ffname.innerHTML="<input type='text' id='ffname_text"+no+"' value='"+ffname_data+"'>";
 ffamount.innerHTML="<input type='number' class='ffeetotal' id='ffamount_text"+no+"' value='"+ffamount_data+"'>";
}

function save_row(no)
{
 var ffname_val=document.getElementById("ffname_text"+no).value;
 var ffamount_val=document.getElementById("ffamount_text"+no).value;

 document.getElementById("ffname_row"+no).innerHTML=ffname_val;
 document.getElementById("ffamount_row"+no).innerHTML=ffamount_val;


 document.getElementById("edit_button"+no).style.display="block";
 document.getElementById("save_button"+no).style.display="none";
}

function delete_row(no)
{
 document.getElementById("row"+no+"").outerHTML="";
}

function add_row()
{
 var new_ffname=document.getElementById("new_ffname").value;
 var new_ffamount=document.getElementById("new_ffamount").value;

 var table=document.getElementById("data_table");
 var table_len=(table.rows.length)-1;
 var row = table.insertRow(table_len).outerHTML="<tr id='row"+table_len+"'><td id='ffname_row"+table_len+"'>"+new_ffname+"</td><td id='ffamount_row"+table_len+"'>"+new_ffamount+"</td><td><input type='button' id='edit_button"+table_len+"' value='Edit' class='edit' onclick='edit_row("+table_len+")'> <input type='button' id='save_button"+table_len+"' value='Save' class='save' onclick='save_row("+table_len+")'> <input type='button' value='Delete' class='delete' onclick='delete_row("+table_len+")'></td></tr>";

 document.getElementById("new_ffname").value="";
 document.getElementById("new_ffamount").value="";

}

我不知道我哪里出了问题。你能帮我吗?

谢谢

最佳答案

您必须将 ffeetotal 类添加到 add_row 函数中新添加的 td 中。使用这个fiddle :

JS:

function totalfixfees(){
            var tffees = 0;
            var cusid_ele = document.getElementsByClassName('ffeetotal');
            //debugger;
            for (var i = 0; i < cusid_ele.length; i++) {
            if (!isNaN(parseFloat(cusid_ele[i].innerText)) )
                tffees += parseFloat(cusid_ele[i].innerText);
            }
            document.getElementById('tffees').innerText = tffees;
        }

function add_row() {
            var new_ffname = document.getElementById("new_ffname").value;
            var new_ffamount = document.getElementById("new_ffamount").value;

            var table = document.getElementById("data_table");
            var table_len = (table.rows.length) - 1;
            var row = table.insertRow(table_len).outerHTML = "<tr id='row" + table_len + "'><td id='ffname_row" + table_len + "'>" + new_ffname + "</td><td class='ffeetotal' id='ffamount_row" + table_len + "'>" + new_ffamount + "</td><td><input type='button' id='edit_button" + table_len + "' value='Edit' class='edit' onclick='edit_row(" + table_len + ")'> <input type='button' id='save_button" + table_len + "' value='Save' class='save' onclick='save_row(" + table_len + ")'> <input type='button' value='Delete' class='delete' onclick='delete_row(" + table_len + ")'></td></tr>";

            document.getElementById("new_ffname").value = "";
            document.getElementById("new_ffamount").value = "";

        }

关于javascript - 动态生成的费用总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40843686/

相关文章:

javascript - 图像元素在 src 更改时变为空?幻灯片

javascript - div 淡出内部 div 元素

jquery - 将多个对象添加到自关闭 div

javascript - css sqaure/rectangle 是否有可能让右边看起来像一个三 Angular 形 right

php - IE Drop 菜单不起作用

html - 子元素的 CSS 不透明度

javascript - 在 javascript 关联数组(哈希)中查找重复值

javascript - 使用 javascript 存储(和检索!)特定于 dom 元素的数据的最佳方式

javascript - 气泡图 : how to avoid bubbles being cut off? 谷歌可视化

javascript - 使用 HTMLtoJSON 将 HTML 表中的值返回为 JSON 格式