简体   繁体   English

如何添加动态创建的文本框的所有值

[英]How to add all the values of dynamically created Textbox

I am working on Billing System, where i have a dropdown which consist of lot of items and a textbox in front of it, which is a price of that item.我正在开发计费系统,在那里我有一个下拉列表,其中包含许多项目和它前面的文本框,这是该项目的价格。

I am calling new dropdown and textbox each time using add button.我每次都使用添加按钮调用新的下拉菜单和文本框。

 var i = 1; var j = 11; $(".btnAdd").click(function() { i += 1; j += 1; $('#myDiv').after('<div class="row"><div class="col"><select id="' + i + '" style="width: 130px"><option value="val1">a</option><option value="val2">b</option><option value="val3">c</option><option value="valn">z</option></select><input type="text" id="' + j + '" /> </div></div>'); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="myDiv" class="row"> <div class="col"> <select id=" 1 " style='width: 130px'> <option value='val1'>a</option> <option value='val2'>b</option> <option value='val3'>c</option> <option value='valn'>z</option> </select> <input type="text" id=" 11 " name="txt" /> </div> </div> <button class="btnAdd">Add</button> <div> <input type="text" id=" totval " name="txt" /> <button class="Submit">Total</button> </div>

My question is how to add all the values when the TOTAL button is clicked and store in TOTAL textbox ?我的问题是如何在单击 TOTAL 按钮并存储在 TOTAL 文本框中时添加所有值? Please help me in this ..请帮我解决这个..

CHECK THIS FIDDLE -> https://fiddle.jshell.net/e20hc1wo/2/检查这个小提琴 - > https://fiddle.jshell.net/e20hc1wo/2/

Try this Fiddle试试这个小提琴

 var i = 1; var j = 11; $(".btnAdd").click(function() { i += 1; j += 1; $('#myDiv').after('<div class="row"><div class="col"><select id="' + i + '" style="width: 130px"><option value="val1">a</option><option value="val2">b</option><option value="val3">c</option><option value="valn">z</option></select><input type="text" id="' + j + '" /> </div></div>'); }); $('.Submit').on('click', function() { var total = 0; $('input[type=text]').not('#totval').each(function(index, item) { total += parseInt($(item).val()); }); $('#totval').val(total); })
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <div id="myDiv" class="row"> <div class="col"> <select id=" 1 " style='width: 130px'> <option value='val1'>a</option> <option value='val2'>b</option> <option value='val3'>c</option> <option value='valn'>z</option> </select> <input type="text" id=" 11 " name="txt" /> </div> </div> <button class="btnAdd">Add</button> <div> <input type="text" id="totval" name="txt" /> <button class="Submit">Total</button> </div>

Implementing the sum is possible:实现总和是可能的:

$(".Submit").click(function () {
    var total = 0;
    $("input:not(#totval)").each(function (_, e) {
        total += parseInt(e.value, 10)
    });
    $("#totval").val(total);
});

Fiddle: https://fiddle.jshell.net/e20hc1wo/12/小提琴: https : //fiddle.jshell.net/e20hc1wo/12/

But I think the code can be improved a lot if you add meaningful classes to these inputs created.但是我认为如果您为这些创建的输入添加有意义的类,代码可以得到很大改进。

Improved: The following implementation uses a template row to avoid concatenating HTML code in JS.改进:以下实现使用模板行来避免在 JS 中连接 HTML 代码。

<div class="row template">
    <div class="col">
        <select class="typeSelect" style='width: 130px'>
            <option value='val1'>a</option>
            <option value='val2'>b</option>
            <option value='val3'>c</option>
            <option value='valn'>z</option>
        </select>
        <input type="text" class="numberInput" />
    </div>
</div>
<button class="btnAdd">Add</button>
<div>
    <input type="text" id="totval" name="txt" />
    <button class="Submit">Total</button>
</div>

JS: JS:

var template = $(".template").remove();
$(".btnAdd").click(function () {
    template.clone(true).insertBefore('.btnAdd');
}).click();
$(".Submit").click(function () {
    var total = 0;
    $(".numberInput").each(function (_, e) {
        total += parseInt(e.value, 10)
    });
    $("#totval").val(total);
});

It is much shorter and cleaner它更短更干净

Fiddle: https://fiddle.jshell.net/e20hc1wo/23/小提琴: https : //fiddle.jshell.net/e20hc1wo/23/

Add id to button将 id 添加到按钮

<button class= "Submit" id="btnTotal">Total</button>

Add function to javascript向javascript添加函数

$("#btnTotal").click(function () {
var total = 0;
$(".row input").each(function(){
total += parseInt($(this).val(),10);
})    
$('#totval').val(total);
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM