下面的脚本创建了一行新的文本框和一个按钮。但是,当单击按钮时,新字段将具有新的按钮文本和新的设计。
$(function () {
var newRow = $(".addRows").clone();
$("#addButton").on("click", function () {
let row = newRow.clone().appendTo("#TextBoxesGroup tbody");
$("tr").find("#addButton").css( "border-color", "red" );
});
});
<table id="TextBoxesGroup">
<tr class="addRows">
<td>Start Date:</td>
<td>
<input type="text" name="StartDate[]" class="picker" value="" size="6">
</td>
<td>End Date:</td>
<td>
<input type="text" name="EndDate[]" class="picker" value="" size="6">
</td>
<td>
<input type="button" id="addButton" value="add row" />
</td>
</tr>
</table>
<script type = "text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
例如,创建新按钮应该与文本删除和颜色红色。感谢帮助或建议
2条答案
按热度按时间thtygnil1#
我认为使用模板可以使修改元素变得更容易和更干净。这里是一个使用vanillajs https://gomakethings.com/html-templates-with-vanilla-javascript/进行基本模板化的快速指南。这允许您轻松地为您的输入传递ID。
我不确定你是想切换第二行还是想添加多行,如果你只想切换第二行而不想添加更多的行,那么只使用js的第二部分,并删除第一个模板,同样地,如果你想添加多行,你可以删除js的第二部分(目前已注解掉)和第二个模板。
csbfibhn2#
我注意到我前面的答案没有正确处理在其他项之间添加项,即不在列表的末尾添加项。
下面的代码将更好地处理添加和删除条目,同时保持id的顺序,而不是基于我们在JavaScript中保存和管理的数据来呈现字段。