動的に複製されるフィールドがあります。入力フィールドのクラスと親スパンを変更できないように見えることを除いて、すべて正常に機能しています。
マークアップ :
<td class="small-text">
<span class="wpcf7-form-control-wrap submitted-file">
<input type="file" name="submitted-file-1" value="1" size="40" class="wpcf7-form-control wpcf7-file submitted-file" id="submitted-file-1">
</span>
</td>
(編集I:これは完全なマークアップではなく、関連する部分だけです。複製されたフィールド全体は、スクリプトから理解できるように、<tr>
IDを持つ完全なテーブル行です..)#o99_the_work
JS:
jQuery("#add_row").click(function() {
var row = jQuery("#o99_the_work tbody > tr:last"),
newRow = row.clone(true);
newRow.find("input[type=text],input[type=file]").each(function() {
var me = jQuery(this).parent();
var me2 = jQuery(this);
var num = +(this.id.match(/\d+$/) || [0])[0] + 1;
this.id = this.id.replace(/\d+$/, "") + num;
this.name = this.id;
me2.attr("class",me2.attr("class").replace(/\d+/, function(val) { return parseInt(val)+1; }));
});
newRow.insertAfter(row);
return false;
});
したがって、このスクリプトでは、id
との両方name
が正しくインクリメントされます。
問題はどこにありますか?submitted-file
入力フィールドと親スパンの両方でクラス属性もインクリメントする必要がありますが、この行は次のとおりです。
me2.attr("class",me2.attr("class").replace(/\d+/, function(val) { return parseInt(val)+1; }));
実際にはFIRST number をキャッチしますが、これは私の場合はwpcf7-form-control
であり、この値を wpcf8-form-control
, wpcf9-form-control
.. に増やしています (これは私にとっては間違っています)。
を持つ値のみをインクリメントするにはどうすればよいsubmitted-file[-something]
ですか?