一般に、フォームを作成します。 'add-question-btn'によって、私は新しい質問をフォームに追加します。私たちは、所有者(著者)として、ドロップダウンリストから選択することによって、回答の種類が何であるかを決定する必要があるので、多くの質問をすぐに追加することができます。JQUERY、IDを選択
var num_question_options = [0];
var num_questions = 1;
$('#add-question-btn').click(function() {
$('.questions').append(
'<div class="questions-div" id="question-' + num_questions + '">' +
'<label id="question-label" for="question-text">id:' + num_questions + '</label>' +
'<input class="form-control" id="question-text" type="text" placeholder="Pytanie"/>' +
'<div class="select-select-type">' +
'<div class="dropdown">' +
'<select title="type" class="select-type form-control" id="select-' + num_questions + '">' +
'<option value="text">Krótka odpowiedz</option>' +
'<option value="radio">Wielokrotny wybór</option>' +
'<option value="checkbox">Pola wyboru</option>' +
'<option value="menu">Menu</option>' +
'<option value="scale">Skala liniowa</option>' +
// tego na razie nie bedzie
// '<option value="table">Siatka wielokrotnego wyboru</option>' +
'<option value="date">Data</option>' +
'<option value="hour">Godznia</option>' +
'</select>' +
'</div>' +
'<ul id="answers" class="list-unstyled"></ul>' +
'</div>'
);
num_question_options[num_questions] = 0;
num_questions++
});
は、選択した回答タイプに応じて、我々は(著者として)可能な答えを入力するための場所を受けるべきです。これは私の選択したオプションの変更を検出する機能です。
問題は、どのようにsthを追加するべきかを知るために、その関数内のselect IDを見つける方法です。
$(document).on('change','select',function(){
var select_val = this.value;
var field_val = parseInt($(this).attr("id")); //THIS IS PROBLEM
alert(field_val);
switch (select_val) {
case 'text':
alert('TESTtext');
break;
case 'radio':
alert('TESTradio');
var question = $('div.questions-div#question-' + field_val);
var id = {
questionId: field_val,
optionId: num_question_options[field_val] + 1
};
question.find('ul#answers').append(
'<li>' +
'<input class="form-control" ' +
'title="answer" ' +
'id="answer-' + num_question_options[field_val] + '" ' +
'type="text" ' +
'onfocus="add_option(' + id.questionId + ', +' + id.optionId + ')" ' +
'onblur="remove_option(' + id.questionId + ', +' + id.optionId + ')" />' +
'</li>'
);
num_question_options[field_val]++;
break;
case 'checkbox':
alert('TESTcheckbox');
break;
case 'menu':
alert('TESTmenu');
break;
case 'scale':
alert('TESTscale');
break;
case 'date':
alert('TESTdate');
break;
case 'hour':
alert('TEShour');
break;
}
});
thx、.replace(/ [^ \ d]/g、 '')で動作します。 –
@ JanekWojciechowskiあなたは私の答えを受け入れることができますか? – Gerry
申し訳ありませんが、私はやったと再びthx –