私はjqueryが初めてで、論理エラーを起こしていると100%確信していますが、それを見ることができません。基本的に、ユーザーがフィールドにアイテムを入力すると、フィールドを複製して、さらに情報を追加できるようにします。私が取り組んでいる例では、兄弟とその年齢のリストを作成しようとしています。
これが私のコードです:
$(document).ready(function () {
$("input[name='age']").on('keydown', function() {
//is it the last input?
if (this == $("input[name='age']:last", this.form)[0]) {
//insert an empty clone of the current input
//$(this).after($(this).clone(true).val(''));
$('.family').clone().insertAfter(".family");
}
html は次のとおりです。
<form>
<div class="family">
<input name="age" value=0> <input name="sibling" value="name?">
<hr />
</div>
</form>
使用する$(this).after($(this).clone(true).val(''));
と機能しますが、1つのフィールド(年齢1)のみを複製するため、それを置き換えて$('.family').clone().insertAfter(".family");
divクラスを複製しようとしましたが、フィールドは1回だけ複製されます。最初の兄弟情報を入力し始めると、2 番目のフォームが表示されますが、2 番目のフォームで入力を開始すると、その後は何も表示されません。
単なる推測ですが、ifステートメントが一致していないため、クローンが作成されていないと思います(私は新しいので、この考えは間違っている可能性があります)。これが事実である場合、入力フィールドの同じ名前を複製しているためinput[name='age']:last
、最後の年齢フィールドと一致する必要があるため、混乱しています..わかりません。
私が間違っていることは何か分かりますか?