【发布时间】:2017-02-07 14:52:48
【问题描述】:
我正在尝试在包含多个输入的表单中克隆一个 div。
这是我的html:
<div>
<input type="hidden" name="sf_action" value="INSERT" />
<input type="text" name="sf_anzahl[2]" value="" placeholder="Anz." class="w50x TxtCenter" />
<input type="text" name="sf_hoehe[2]" value="" placeholder="Höhe" class="w100x BorderLeft TxtCenter" />
<input type="text" name="sf_breite[2]" value="" placeholder="Breite" class="w100x TxtCenter BorderLeft" />
<select name="sf_art[2]" class="w150x BorderLeft">
<option value="0">Automatiktür</option>
<option value="1">Bürofenster</option>
<option value="2">Shopfenster</option>
<option value="3">Oberlichter</option>
</select> 
<input type="checkbox" name="sf_rsi[2]" value="1" /> R-SI 
<input type="checkbox" name="sf_rssf[2]" value="1" /> R-SSF 
<input type="checkbox" name="sf_rspf[2]" value="1" /> R-SPF 
<input type="checkbox" name="sf_ssf[2]" value="1" /> SSF 
<input type="checkbox" name="sf_upm[2]" value="1" /> UPM 
<input type="checkbox" name="sf_ebm[2]" value="1" /> EBM 
</div>
<input type="button" class="add1" value="+" />
和我的 jquery:
$(".add1").on("click", function()
{
var eingabe = $(this).prev("div").clone();
eingabe.find("input[type='text']").val("");
eingabe.find("input[type='checkbox']").prop("checked", false);
var idar = $("input:nth-child(2n)", eingabe).attr("name").match(/\[(.*)\]/);
var ausgabe = eingabe.prop('outerHTML');
var id = parseInt(idar[1]);
var ausgabeX = $(ausgabe).text().replace(/\[(.*)\]/, ++id);
$(ausgabeX).insertBefore(this);
});
在“点击”时,我想克隆整个 div 并添加它(在按钮之前,在最后一个 div 之后)。
克隆本身运行良好,但现在我想在括号 [] 之间获取 id,将其递增并在所有名称属性的新 div 中替换它。
我可以获取 id 并将其递增,但不知道如何在新输入中替换它。
我已经从数据库中获取了一些 div,所以 id 并不总是 [0],例如 [1]-[4] 可以已经存在。特别是对于这种情况,我需要增加括号中的数字。空括号不起作用。
【问题讨论】:
-
这是一个纯 JS(或者更确切地说是 jQuery)的问题,与 PHP 无关。
-
没有必要把
name写成sf[0],sf[]也一样
标签: jquery