gpt4 book ai didi

javascript - 如何通过克隆来增加输入名称?

转载 作者:太空宇宙 更新时间:2023-11-04 16:03:40 25 4
gpt4 key购买 nike

我有一个 html 表单,其中有一些输入 type=text。我可以克隆每个输入,但我想恢复名称以在数据库中插入信息。因此,我必须增加所有名称。我只能增加一种类型的输入,而不能增加多种类型。

    <body>

<button id="clone">Cloner</button>
<button id="removebutton">Remove</button>


<form id="myForm">

<div class="equipment" id="eqp">
<h4 class="title4">EQUIPEMENT 1 / EQUIPMENT 1</h4>
<label>Date de prêt / Loan date:</label>
<input type="text" name="loandate" id="datepicker" placeholder="ex: 20170101"/><br/><br/>

<label>Nom du produit / Product Name:</label>
<input type="text" name="productname" placeholder="ex: Asus"/><br/><br/>

<label>Type:</label>
<input type="text" name="type"/><br/><br/>

<label>Numéro de série / Serial Number:</label>
<input type="text" name="serialnumber" placeholder="ex: A003565DS65"/><br/><br/>

<label>Statuts / Status:</label>
<select name="status">
<option>gg</option>
<option>hh</option>
</select><br/><br/>
</div>

</form>


</body>
</html>

JS:

$('#clone').click(function () {

$('#myForm').append($('#eqp:last').clone());
$('#myForm div').each(function (i) {
var textinput1 = $(this).find('input');
var textinput2 = $(this).find('input[text="productname"]');

var select = $(this).find('select');

i++;
textinput1.eq(0).attr('name', 'loandate' + i);
select.eq(0).attr('name', 'status' + i);
});

});

$("#removebutton").click(function() {
if ($('.equipment').length > 1)
$('.equipment:last').remove()
});
//});

感谢您的帮助!

最佳答案

使用<input name="loandate[]" >

您不需要增加名称,您将获得数组形式的结果

以下是您需要更改为 HTML 和 JS 的内容:

$('#clone').click(function () {

$('#myForm').append($('.equipment:last').clone());
$('#myForm div').each(function (i) {

});

});

$("#removebutton").click(function() {
if ($('.equipment').length > 1)
$('.equipment:last').remove()
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button id="clone">Cloner</button>
<button id="removebutton">Remove</button>


<form id="myForm">

<div class="equipment">
<h4 class="title4">EQUIPEMENT 1 / EQUIPMENT 1</h4>
<label>Date de prêt / Loan date:</label>
<input type="text" name="loandate[]" id="datepicker" placeholder="ex: 20170101"/><br/><br/>

<label>Nom du produit / Product Name:</label>
<input type="text" name="productname[]" placeholder="ex: Asus"/><br/><br/>

<label>Type:</label>
<input type="text" name="type[]"/><br/><br/>

<label>Numéro de série / Serial Number:</label>
<input type="text" name="serialnumber[]" placeholder="ex: A003565DS65"/><br/><br/>

<label>Statuts / Status:</label>
<select name="status[]">
<option>gg</option>
<option>hh</option>
</select><br/><br/>
</div>

</form>

考虑一下您的 html 中有错误。设备 div 元素有一个 ID ( #eqp )。克隆该 div 后,您将获得具有相同 ID 的多个元素。 (这不好)。

您需要更改的是:

  • 删除该 ID 并使用类选择器
  • 编辑表单名称,如下所示:name[]
  • 简化你的 JS。无需为每个元素设置不同的名称
  • 在 PHP 中将它们作为数组进行操作。

PHP 示例:

$i = 0;

do{

$loandate = $_POST['loandate'][$i];
$type = $_POST['type'][$i]
//...

$i++;

}while(isset($_POST['loandate'][$i]))

关于javascript - 如何通过克隆来增加输入名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42071646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com