[英]How to add amount in duplicated input type text and display added amount
I am trying to add duplicate amount value and display output in input text( get_amount ) which is when one clicks addmilistone button.我正在尝试添加重复的金额值并在输入文本( get_amount )中显示输出,这是单击addmilistone按钮时的结果。 For example;
例如; When a user click add button, the field duplicates, and when the user enters the amount on both inputs its add and displays in input type text.
当用户单击添加按钮时,该字段会复制,并且当用户在两个输入上输入金额时,其添加并显示在输入类型文本中。
Html The code below is being duplicate when the user clicks +addmilistone
Html当用户点击
+addmilistone
时,下面的代码会重复
<div id="fieldset" class="row">
<div class="modal-body">
<input type="button" class="btn btn-primary" id="addmilistone" value="+addmilistone"/>
<div id="fieldset" class="row">
<div class="col-sm-4">
<div class="form-group">
<label for="m_description">Description</label>
<input type="text" name="m_description" id="m_description" placeholder="milestone Description" class="form-control">
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label for="ddate">Due Date</label>
<input type="date" name="ddate" id="ddate" class="form-control">
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label for="amount">Amount</label>
<input type="text" id="i_amount" class="form-control">
</div>
</div>
</div>
</div>
</div>
Display Input type The code is where the calculation is being displayed when one input amount in input type id="i_amount"
, that wether in a single row of inputs or duplicates.显示输入类型代码是当输入类型
id="i_amount"
一个输入金额时显示计算的地方,无论是在单行输入中还是重复。
<input type="number" id="get_amount" class="form-control" name="">
Scripts脚本
This script is duplicating the row of inputs此脚本正在复制输入行
<script type="text/javascript">
(function(){
var button = document.getElementById("addmilistone");
button.addEventListener("click", function() {
var sourceNode = document.getElementById("fieldset");
var node = duplicateNode(sourceNode, ["id", "name", "placeholder"]);
sourceNode.parentNode.appendChild(node);
}, false);
var counter = 0;
function duplicateNode(/*DOMNode*/sourceNode, /*Array*/attributesToBump) {
counter++;
var out = sourceNode.cloneNode(true);
if (out.hasAttribute("id")) { out["id"] = bump(out["id"]); }
var nodes = out.getElementsByTagName("*");
for (var i = 0, len1 = nodes.length; i < len1; i++) {
var node = nodes[i];
for (var j = 0, len2 = attributesToBump.length; j < len2; j++) {
var attribute = attributesToBump[j];
if (node.hasAttribute(attribute)) {
node[attribute] = bump(node[attribute]);
}
}
}
function bump(/*String*/str) {
return str + "_" + counter;
}
return out;
}
})();
</script>
<script>
$('#i_amount').keyup(function(){
$('#get_amount').val(this.value);
});
</script>
Do the calculation after the input is outof focus.. In your code u was just selecting the first input在输入失焦后进行计算..在您的代码中,您只是选择了第一个输入
Code代码
(function () { var button = document.getElementById("addmilistone"); button.addEventListener("click", function () { var sourceNode = document.getElementById("fieldset"); var node = duplicateNode(sourceNode, ["id", "name", "placeholder"]); sourceNode.parentNode.appendChild(node); }, false); var counter = 0; function duplicateNode( /*DOMNode*/ sourceNode, /*Array*/ attributesToBump) { counter++; var out = sourceNode.cloneNode(true); if (out.hasAttribute("id")) { out["id"] = bump(out["id"]); } var nodes = out.getElementsByTagName("*"); for (var i = 0, len1 = nodes.length; i < len1; i++) { var node = nodes[i]; for (var j = 0, len2 = attributesToBump.length; j < len2; j++) { var attribute = attributesToBump[j]; if (node.hasAttribute(attribute)) { node[attribute] = bump(node[attribute]); } } } function bump( /*String*/ str) { return str + "_" + counter; } return out; } })(); $('#get_amount').val(0) $('body').on('focusout','[id^="i_amount"]',function () { var sum = Number($('#get_amount').val()); sum += Number($(this).val()); $('#get_amount').val(sum); });
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script> <div class="container"> <div class="row"> <div class="row col-12"> <input type="button" class="btn btn-primary" id="addmilistone" value="+addmilistone" /> </div> <div id="fieldset" class="row"> <div class=" col-sm-4 "> <div class="form-group"> <label for="m_description">Description</label> <input type="text" name="m_description" id="m_description" placeholder="milestone Description" class="form-control"> </div> </div> <div class="col-sm-4"> <div class="form-group"> <label for="ddate">Due Date</label> <input type="date" name="ddate" id="ddate" class="form-control"> </div> </div> <div class="col-sm-4"> <div class="form-group"> <label for="amount">Amount</label> <input type="text" id="i_amount" class="form-control amount"> </div> </div> </div> </div> <div class="row"> <input type="number" id="get_amount" class="form-control" name=""> </div> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.