オーバーフローに関する最初の質問です。問題が発生した場合や、以前の回答を見逃した場合は、あらかじめご容赦ください。私はjQueryに少し慣れていないので、コーディング方法に問題があるかもしれません. ユーザーの必要に応じてテキスト入力フィールドを追加できる動的フォームを構築しようとしています。複製されたボタンを使用してフィールドを追加しようとするまでは、非常にうまく機能します。
jquery-ui 1.11.2 と jquery 1.11.2 を使用しています
HTML コード:
<style>.hiddenForm{display:none};</style>
<form>
<input id="numentries" class="numspinner" />
<div class="repeatedForm hiddenForm">
<input type="button" class="numbutton" value="Add Fields" />
<div class="repeatedInnerForm hiddenForm">
<input type="text" placeholder="Gimme information" />
<input type="text" placeholder="Gimme more information" />
</div>
</div>
</form>
Javascript
$(".numspinner").spinner({min:1});
$(".numspinner").on("spin",function(event, ui){
var oldvalue = $(this).val();
var newvalue = ui.value;
var diff = newvalue - oldvalue;
if(newvalue >= 1){
if(diff == 1){
var newForm = $(".repeatedForm").clone(true);
newForm.removeClass("repeatedForm");
newForm.removeClass("hiddenForm");
newForm.attr("id","innerForm"+newvalue);
newForm.appendTo("form");
}else if(diff == -1){
$("#innerForm"+oldvalue).remove();
}
}
});
$(".numbutton").button();
$(".numbutton").click(function(event){
var buttonclicked = $(this);
var newForm = $(".repeatedInnerForm").clone();
newForm.removeClass("repeatedInnerForm");
newForm.removeClass("hiddenForm");
newForm.insertAfter(buttonclicked);
});
JSFiddle
ボタンを押すたびに 1 セットのテキスト フィールドのみを表示し、テキスト フィールドを押されたボタンに関連付けたいと思います。ボタンの最初のクローンに関係していると思います。コード スタイルに関する意見や建設的な批判を歓迎します。