我有输入字段,这些字段是根据JSON文件中的数组创建的。
但是,当我在输入字段中插入内容时,直到我开始在不属于其他输入字段的输入字段中插入内容之前,它一直正确。不用担心,接下来会有更多解释。
这是我的JSON的样子:
{
"main_object": {
"id": "5",
"getExerciseTitle": "TestFor",
"language": "nl_NL",
"application": "lettergrepen",
"main_object": {
"title": "TestFor",
"language": "nl_NL",
"exercises": [{
"word": "test",
"syllables": [
"test01",
"test02",
"test03",
""
]
},
{
"word": "tesst",
"syllables": [
"test11",
"test12",
"",
""
]
}
]
},
"dataType": "json"
}
}
如您所见,我有多个名为syllables
的数组。我正在尝试做的是:创建push
,直到它到达JSON中的匹配数组为止,然后应将输入字段更改为按钮。但是,当我转到链接到第二个数组的下一个输入字段时,不是继续从0开始push
,而是继续进行。
一张图片,让您明白我的意思(也请注意console.log()
)。
因此:与其让push
重新开始,不如继续将其添加到已经存在的数组中。我希望不会发生这种情况,因此以后可以进行检查,检查push
是否等于数组,然后将所有所需的输入字段分配给绿色按钮。
这是我的代码现在的样子:
var x = [];
function prepareCheck() {
$.getJSON('json_files/jsonData_' + ID + '.json', function(json) {
$(document).on('change', '.syl-input', function() {
var rowCounter = $(this).parent().parent().parent().parent().attr('id');
var inputCounter = $(this).attr('id');
var jsyl = json.main_object.main_object.exercises[rowCounter].syllables[inputCounter];
var jsylall = json.main_object.main_object.exercises[rowCounter].syllables;
var valueInput = $(this).val();
console.log(jsylall);
if (valueInput == jsyl) {
var correctInput = $('<input/>', {
'class': 'form-control',
'type': 'text',
'id': 'button' + CBC++,
'value': valueInput
});
console.log(jsyl);
x.push(valueInput);
if (valueInput == '') {
x.remove($(this).val());
};
console.log(x);
$(this).replaceWith(correctInput);
S.playRight();
S.addRight();
} else if ($.inArray(valueInput, jsylall) >= -1) {
$(this).css({
'color': '#e00413'
});
S.playWrong();
S.addWrong();
}
});
});
}
问题:如何再次重置x.push
?因此我可以继续检查输入字段是否具有所需的单词/长度以将其更改为绿色按钮?