我有两个 json 块,一个是自定义的,一个是从服务器带来的。它的工作方式是我有一个for循环,它贯穿静态json并根据那里的内容将表单html附加到窗口,如果这些值基于第二个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');
}
}
第一个 console.log 当它进入 else if field.name == 'percent' 时显示 type = 2 的值。第二个按预期触发,说明 type = 2。但没有其他任何事情发生。