簡體   English   中英

使用引導選擇器動態添加表格行

[英]Dynamically add a table row with a bootstrap selectpicker

我正在嘗試動態添加表格行。 其中一個 td 有一個引導選擇選擇器字段。 當我在 JavaScript 中添加類選擇選擇器時,該字段不會呈現該字段,當我刪除該類時,選擇字段會在沒有搜索輸入的情況下呈現。 我希望將選擇呈現為引導選擇選擇器,而不是簡單的選擇字段

 function addRow() { $("#addRowBtn").button("loading"); var tableLength = $("#productTable tbody tr").length; var tableRow; var arrayNumber; var count; if (tableLength > 0) { tableRow = $("#productTable tbody tr:last").attr("id"); arrayNumber = $("#productTable tbody tr:last").attr("class"); count = tableRow.substring(3); count = Number(count) + 1; arrayNumber = Number(arrayNumber) + 1; } else { // no table row count = 1; arrayNumber = 0; } $.ajax({ url: "php_action/fetchProductData.php", type: "post", dataType: "json", success: function (response) { $("#addRowBtn").button("reset"); var tr = '<tr id="row' + count + '" class="' + arrayNumber + '">' + "<td>" + '<div class="form-group">' + '<div class="search_select">' + '<select class="form-control" data-live-search="true" name="productName[]" id="productName' + count + '" onchange="getProductData(' + count + ')" >' + '<option value="">~~SELECT~~</option>'; // console.log(response); $.each(response, function (index, value) { tr += '<option value="' + value[0] + '">' + value[1] + "</option>"; }); tr += "</select>" + "</div>" + "</div>" + "</td>" + '<td style="padding-left:20px;"">' + '<input type="text" name="rate[]" id="rate' + count + '" autocomplete="off" disabled="true" class="form-control" />' + '<input type="hidden" name="rateValue[]" id="rateValue' + count + '" autocomplete="off" class="form-control" />' + '</td style="padding-left:20px;">' + '<td style="padding-left:20px;">' + '<div class="form-group">' + '<input type="number" name="quantity[]" id="quantity' + count + '" onkeyup="getTotal(' + count + ')" autocomplete="off" class="form-control" min="1" />' + "</div>" + "</td>" + '<td style="padding-left:20px;">' + '<input type="text" name="total[]" id="total' + count + '" autocomplete="off" class="form-control" disabled="true" />' + '<input type="hidden" name="totalValue[]" id="totalValue' + count + '" autocomplete="off" class="form-control" />' + "</td>" + "<td>" + '<button class="btn btn-default removeProductRowBtn" type="button" onclick="removeProductRow(' + count + ')"><i class="glyphicon glyphicon-trash"></i></button>' + "</td>" + "</tr>"; if (tableLength > 0) { $("#productTable tbody tr:last").after(tr); } else { $("#productTable tbody").append(tr); $(".search_select").selectpicker("refresh"); } }, // /success }); // get the product data } // /add row
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table class="table" id="productTable"> <thead> <tr> <th style="width:40%;">Product</th> <th style="width:20%;">Rate</th> <th style="width:15%;">Quantity</th> <th style="width:15%;">Total</th> <th style="width:10%;"></th> </tr> </thead> <tbody> <?php $arrayNumber = 0; for ($x = 1; $x < 4; $x++) { ?> <tr id="row<?php echo $x; ?>" class="<?php echo $arrayNumber; ?>"> <td style="margin-left:20px;"> <div class="form-group"> <select class="form-control selectpicker" data-live-search="true" name="productName[]" id="productName<?php echo $x; ?>" onchange="getProductData(<?php echo $x; ?>)"> <option value="">~~SELECT~~</option> <?php $productSql = "SELECT * FROM product WHERE active = 1 AND status = 1 AND quantity != 0"; $productData = $connect->query($productSql); while ($row = $productData->fetch_array()) { echo "<option value='" . $row['product_id'] . "' id='changeProduct" . $row['product_id'] . "'>" . $row['product_name'] . "</option>"; } // /while ?> </select> </div> </td> <td style="padding-left:20px;"> <input type="text" name="rate[]" id="rate<?php echo $x; ?>" autocomplete="off" disabled="true" class="form-control" /> <input type="hidden" name="rateValue[]" id="rateValue<?php echo $x; ?>" autocomplete="off" class="form-control" /> </td> <td style="padding-left:20px;"> <div class="form-group"> <input type="number" name="quantity[]" id="quantity<?php echo $x; ?>" onkeyup="getTotal(<?php echo $x ?>)" autocomplete="off" class="form-control" min="1" /> </div> </td> <td style="padding-left:20px;"> <input type="text" name="total[]" id="total<?php echo $x; ?>" autocomplete="off" class="form-control" disabled="true" /> <input type="hidden" name="totalValue[]" id="totalValue<?php echo $x; ?>" autocomplete="off" class="form-control" /> </td> <td> <button class="btn btn-default removeProductRowBtn" type="button" id="removeProductRowBtn" onclick="removeProductRow(<?php echo $x; ?>)"><i class="glyphicon glyphicon-trash"></i></button> </td> </tr> <?php $arrayNumber++; } // /for ?> </tbody> </table>

我必須更改在 javascript 中呈現的字段的類並使用已知的類名呈現元素

 function addRow() { $("#addRowBtn").button("loading"); var tableLength = $("#productTable tbody tr").length; var tableRow; var arrayNumber; var count; if (tableLength > 0) { tableRow = $("#productTable tbody tr:last").attr("id"); arrayNumber = $("#productTable tbody tr:last").attr("class"); count = tableRow.substring(3); count = Number(count) + 1; arrayNumber = Number(arrayNumber) + 1; } else { // no table row count = 1; arrayNumber = 0; } $.ajax({ url: "php_action/fetchProductData.php", type: "post", dataType: "json", success: function (response) { $("#addRowBtn").button("reset"); var tr = '<tr id="row' + count + '" class="' + arrayNumber + '">' + "<td>" + '<div class="form-group">' + '<div class="search_select">' + '<select class="form-control sele" data-live-search="true" name="productName[]" id="productName' + count + '" onchange="getProductData(' + count + ')" >' + '<option value="">~~SELECT~~</option>'; // console.log(response); $.each(response, function (index, value) { tr += '<option value="' + value[0] + '">' + value[1] + "</option>"; }); tr += "</select>" + "</div>" + "</div>" + "</td>" + '<td style="padding-left:20px;"">' + '<input type="text" name="rate[]" id="rate' + count + '" autocomplete="off" disabled="true" class="form-control" />' + '<input type="hidden" name="rateValue[]" id="rateValue' + count + '" autocomplete="off" class="form-control" />' + '</td style="padding-left:20px;">' + '<td style="padding-left:20px;">' + '<div class="form-group">' + '<input type="number" name="quantity[]" id="quantity' + count + '" onkeyup="getTotal(' + count + ')" autocomplete="off" class="form-control" min="1" />' + "</div>" + "</td>" + '<td style="padding-left:20px;">' + '<input type="text" name="total[]" id="total' + count + '" autocomplete="off" class="form-control" disabled="true" />' + '<input type="hidden" name="totalValue[]" id="totalValue' + count + '" autocomplete="off" class="form-control" />' + "</td>" + "<td>" + '<button class="btn btn-default removeProductRowBtn" type="button" onclick="removeProductRow(' + count + ')"><i class="glyphicon glyphicon-trash"></i></button>' + "</td>" + "</tr>"; if (tableLength > 0) { $("#productTable tbody tr:last").after(tr); $(".sele").selectpicker("render"); } else { $("#productTable tbody").append(tr); $(".sele").selectpicker("render"); } }, // /success }); // get the product data } // /add row

暫無
暫無

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

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