私は、追加/削除ボタンに基づいて質問/回答/などを生成する私が構築している調査をしています。 Picture of the surveyアンケートの質問の順序を変更するにはどうすればよいですか?
「Move Up/Move Down」ボタンを使用して質問の順序を変更できるようにして、たとえば質問1で下に移動した場合、質問1と2など。私はここで
は、相対コードここ
<input type='button' value='Add Question' id='addButton'/>
<input type='button' value='Remove Question' id='removeButton'/>
<div id='TextBoxesGroup'>
<div id="TextBoxDiv1">
<input type="button" value="Move Up" id="MoveUpButton1" />
<input type="button" value="Move Down" id="MoveDownButton1" />
<label>Question #1 : </label>
<input type='text' id='questionbox1'/>
<select id="choice1" class="choice">
<option value="text">Text Box</option>
<option value="radio">Radio Button</option>
<option value="checkbox">Check Box</option>
</select>
<input type="button" value="Remove" id="remove1" class="remove" onclick="formSubmit(this.id)";/>
<br/><label>Answer #1 : </label>
<div id="Answers1" class="answers">
Option 1: <input type="text" id='answerbox11' name='answerbox1' class="answerbox" value="" /><span><input type="text" id='hiddenanswerbox11' name='answerbox1' class="hiddenTextBoxes" value="" hidden="hidden"/></span>
<br/>Option 2: <input type="text" id='answerbox12' name='answerbox1' class="answerbox" value="" /><span><input type="text" id='hiddenanswerbox12' name='answerbox1' class="hiddenTextBoxes" value="" hidden="hidden"/></span>
<br/>Option 3: <input type="text" id='answerbox13' name='answerbox1' class="answerbox" value="" /><span><input type="text" id='hiddenanswerbox13' name='answerbox1' class="hiddenTextBoxes" value="" hidden="hidden"/></span>
<br/>Option 4: <input type="text" id='answerbox14' name='answerbox1' class="answerbox" value="" /><span><input type="text" id='hiddenanswerbox14' name='answerbox1' class="hiddenTextBoxes" value="" hidden="hidden"/></span>
</div>
</div>
</div>
であるjQueryの/ JavaScriptで現在これをやっていることのdivを作成する方法のためのバックエンド機能とは何か、私は移動するまでに達成しようとしています/ボタンダウン
$(document).ready(function() {
var counter = 2; //since question 1 is already displayed
var max_fields = 100;
$("#addButton").click(function() {
if (counter > max_fields) {
alert("Only " + max_fields + " Questions allowed");
return false;
}
var newTextBoxDiv = $(document.createElement('div'))
.attr("id", 'TextBoxDiv' + counter);
newTextBoxDiv.after().html('<input type="button" value="Move Up" id="MoveUpButton' + counter + '" /> ' +
'<input type="button" value="Move Down" id="MoveDownButton' + counter + '" /> ' +
'<label>Question #' + counter + ' : </label>' +
'<input type="text" name="textbox' + counter +
'" id="questionbox' + counter + '" value="" />' +
' <select id="choice' + counter + '" class="choice">' +
'<option value="text">Text Box</option><option value="radio">Radio Button</option><option value="checkbox">Check Box</option></select>' +
'<input type="button" value="Remove" id="remove' + counter + '" class="remove" onclick="formSubmit(this.id)";/>' +
'<br/><label>Answer #' + counter + ' : </label>' +
'<div id="Answers' + counter + '" class="answers">' +
'Option 1: <input type="text" id="answerbox' + counter +
'1" name="answerbox' + counter + '" class="answerbox" value="" />' +
'<span><input type="text" id="hiddenanswerbox' + counter + '1" name="answerbox' + counter + '" class="hiddenTextBoxes" value="" hidden="hidden"/></span>' +
'<br/>Option 2: <input type="text" id="answerbox' + counter +
'2" name="answerbox' + counter + '" class="answerbox" value="" />' +
'<span><input type="text" id="hiddenanswerbox' + counter + '2" name="answerbox' + counter + '" class="hiddenTextBoxes" value="" hidden="hidden"/></span>' +
'<br/>Option 3: <input type="text" id="answerbox' + counter +
'3" name="answerbox' + counter + '" class="answerbox" value="" />' +
'<span><input type="text" id="hiddenanswerbox' + counter + '3" name="answerbox' + counter + '" class="hiddenTextBoxes" value="" hidden="hidden"/></span>' +
'<br/>Option 4: <input type="text" id="answerbox' + counter +
'4" name="answerbox' + counter + '" class="answerbox" value="" />' +
'<span><input type="text" id="hiddenanswerbox' + counter + '4" name="answerbox' + counter + '" class="hiddenTextBoxes" value="" hidden="hidden"/></span></div>');
enter code here
newTextBoxDiv.appendTo("#TextBoxesGroup");
counter++;
});
$(document).on("click", "#MoveUpButton1", function() { //hardcoded to get it working before adding in dynamic functionality
var searchEles = $(this).attr('id');
var endingNum = searchEles.slice(-1);
var newTextBoxDiv = document.getElementById("TextBoxDiv" + endingNum);
newTextBoxDiv.insertBefore("TextBoxDiv" + endingNum);
});
$(document).on("click", "#MoveUpButton1", function() {
var searchEles = $(this).attr('id');
var endingNum = searchEles.slice(-1);
var newTextBoxDiv = document.getElementById("TextBoxDiv" + endingNum);
newTextBoxDiv.insertAfter("TextBoxDiv" + endingNum);
});
});
私の主な懸念は、それが移動アップ/ダウン機能でそのようnewTextBoxDivを使用することが正しいかどう
1)私は分からないですが、またI他に何を使うのか分からない。 2)大きな懸念は、明らかにinsertAfterとinsertBeforeがこれを行う正しい方法ですか?これについては正しい方法ではないように見えるが、私は一般的にどのようにこれをやっているのかわからない。さらに、私はこれらの数値テキストを更新する方法を見つけ出す必要があります。なぜなら、それは2、1、3を読むと痛みを感じるからです。
閉じる?
をページ上のさまざまなフォーム要素に値を設定するために必要な関連情報を入力してから、2つのインデックスを交換し、すべての要素を消去してからページ上に再生成する – mike510a