json の 2 つのブロックがあり、1 つは自己定義され、もう 1 つはサーバーから取得されます。それが機能する方法は、静的jsonを実行し、そこにあるものに基づいてフォームhtmlをウィンドウに追加するforループがあることです.2番目のjsonオブジェクトに基づいてサーバーに値が存在する場合、それらのフォームに値を同時に追加しますそれはサーバーからもたらされます。したがって、field.jsonName == type の場合、値の json オブジェクトを調べる別の if ステートメントが開始されます。そのオブジェクトが == 2 の場合、その選択ボックスの値を変更する必要があります。コンソール「type = 2」にログインします
選択ボックスの値を変更するさまざまな方法に関する多くの情報を見つけました。考えられるすべての方法を試しましたが、まだ必要な結果が得られません。なんらかの理由でステートメント全体が無視されているかのようです。私のコードは以下です
参考までに、コードの大部分は次のとおりです。
// Add default Fields to Fieldset
addDefaultFields: function(fieldset) {
for (f in defaults.fields) {
// get field info - if quizJSON exists, use quizJSON data
field = defaults.fields[f];
inputName = field.q.replace(/\W/g,'');
required = field.required ? defaults.requiredString : '';
nameAndId = 'name="' + inputName + '" id="' + inputName + '"';
option1 = '<option value=' +field.value1+ '>' + field.option1 + '</option>';
option2 = '<option value=' +field.value2+ '>' + field.option2 + '</option>';
option3 = '<option value=' +field.value3+ '>' + field.option3 + '</option>';
option4 = '<option value=' +field.value4+ '>' + field.option4 + '</option>';
option5 = '<option value=' +field.value5+ '>' + field.option5 + '</option>';
option6 = '<option value=' +field.value6+ '>' + field.option6 + '</option>';
if (quizValues != null) {
//Prevent Passing score from resetting when editing a quiz
if (field.jsonName == 'percent'){
value = plugin.formHelper.htmlspecialchars(quizValues.info[field.jsonName] * 100);
} else if (field.jsonName == 'type') { console.log(quizValues.info.type);
if(quizValues.info.type == '0') {
$("#QuizType").val('0');
} else if (quizValues.info.type == '1') {
$("#QuizType").val('1');
} else if (quizValues.info.type == '2') {
$("#QuizType").val('2'); console.log('type = 2');
} else if (quizValues.info.type == '3') {
$("#QuizType").val('3');
} else if (quizValues.info.type == '4') {
$("#QuizType").val('4');
} else {
$("#QuizType").val('5');
}
}
else{
value = plugin.formHelper.htmlspecialchars(quizValues.info[field.jsonName]); }
} else {
value = '';
}
ここが私が苦労している部分です
else if (field.jsonName == 'type') { console.log(quizValues.info.type);
if(quizValues.info.type == '0') {
$("#QuizType").val('0');
} else if (quizValues.info.type == '1') {
$("#QuizType").val('1');
} else if (quizValues.info.type == '2') {
$("#QuizType").val('2'); console.log('type = 2');
} else if (quizValues.info.type == '3') {
$("#QuizType").val('3');
} else if (quizValues.info.type == '4') {
$("#QuizType").val('4');
} else {
$("#QuizType").val('5');
}
}
else if field.name == 'percent' に入ったときの最初の console.log は、type = 2 の値を示しています。