option
使用jQuery 尝试更新datalist
response = {'is_taken': [{'id': 3, 'name': 'Casio'}, {'id': 5, 'name': 'Casio Edifice'}, {'id': 6, 'name': 'Casio G-Shock'}], 'is_exist': True}
如何迭代list
以is_taken
更新datalist中的数据?
它jsonOptions.forEach(function(response.is_taken)
抛出一个错误Uncaught SyntaxError: Unexpected token '.'
html
$('#ajax_input').keyup(function () {
// create an AJAX call
$.ajax({
data: $(this).serialize(), // get the form data
url: "{% url 'ajax_request' %}?model=device",
// on success
success: function (response) {
if (response.is_exist == true) {
console.log('is_exist = true')
$("#ajax-one_form-device").text(response.is_taken.name);
vardataList = document.getElementById('{{ widget.name }}');
var input = document.getElementById('ajax_input_{{ widget.name }}');
var request = new XMLHttpRequest();
// Обрабатываем изменение состояния для запроса.
// Парсируем JSON
// Перебираем через цикл массив JSON.
jsonOptions.forEach(function(response.is_taken) {
// Создаем новый элемент <option>.
var option = document.createElement('option');
// Устанавливаем значение, используя элементы массива JSON.
option.value = response.is_taken['id'];
option.label = response.is_taken['name'];
// Добавляем элемент <option> к <datalist>.
dataList.appendChild(option);
});
// Обновляем текст заполнителя.
input.placeholder = "e.g. datalist";
// Обновляем текст заполнителя.
input.placeholder = "Loading options...";
// Настраиваем и выполняем запрос.
request.open('GET', 'html-elements.json', true);
request.send();
console.log(vardataList)
console.log(input)
}
else {
$("#ajax-{{ widget.name }}").text('Нет в базе');
}
},
// on error
error: function (response) {
// alert the error if any error occured
console.log(response.responseJSON.errors)
}
});
return false;
});
不知道变量是什么
jsonOptions
,可能是错字。错误是您在函数参数中指定了对象的属性,据我了解,您想将其传递给函数。但我们真正要做的是创建一个函数并指定一个“内部”变量名。我不知道如何更好地解释它。这个变量将在“循环”的迭代中包含数组的一个元素,我们可以随意命名这个变量,它用于在“循环”内工作。所以正确的行是:
request.is_taken.forEach(function(response)