У меня есть код:
var jsObj = JSON.parse($(this).parent('td').next('td').text());
Object.keys(jsObj).forEach(function (key) {
var value = jsObj[key];
$("#" + key).val(value);
});
Я хочу перебрать ключи объекта javascript, найти элемент ввода с этим именем ключа в качестве идентификатора и установить значение ввода на значение соответствующего ключа в объекте.
Однако этот код устанавливает только значение ввода первых клавиш? Если я сделаю оповещения, он покажет мне все ключи и значения, как я ожидаю, но установка значения фактически только установит первую итерацию в массиве ключей.
Входные данные создаются с помощью бритвы.
Функция запускается при нажатии на ячейку td в модальной таблице. .text () - это строка json, показанная в таблице.
@foreach (var property in dbObject.GetProperties().ToList())
{
var attributes = new Dictionary<string, object>();
attributes.Add("class", "form-control");
attributes.Add("readonly", "readonly");
<div class="col-6">
@Html.Label(property.Name, new { @class = "form-label" })
@Html.Editor(property.Name, new { htmlAttributes = attributes})
</div>
}
По сути, здесь происходит загрузка всей страницы , Затем пользователь нажимает кнопку, чтобы открыть этот модальный. Затем пользователь щелкает значок поиска в одной из записей, и он берет объект json из соседнего элемента td, анализирует его в объект javascript, затем, используя массив ключей этого объекта, выполняет итерацию по нему, находит каждый вход ниже таблица с тем же идентификатором, что и ключ, и установите значение на значение ключа в объекте js. Как видите, он устанавливает только самый первый вход.