У меня есть список счетов, отображаемых на экране. Прямо сейчас пользователь может выбрать или отменить выбор счета-фактуры с помощью флажка или изменить сумму, которую он хотел бы заплатить. Когда это происходит, общая сумма, подлежащая оплате по всем счетам, суммируется и отображается.
Конечной целью здесь является отслеживание массива массивов данных, поступающих с сервера. Я использую JSON, потому что он стандартизирован.
Тогда у меня есть скрытые данные JSON, например:
<input id="InvoicingGridRows" name="InvoicingGridRows" type="hidden"
value="[[{"Value":"TST-1000"},{"Value":346.230000},
{"Value":null},{"Value":null},{"Value":null},
{"Value":null}],
[{"Value":"TST-1001"},
{"Value":126.970000},{"Value":null},{"Value":null},
{"Value":null},{"Value":null}]]" />
В настоящее время в данных много пустых заполнителей для данных.
То, что я пытаюсь сделать, - это создать объект javascript, чтобы при возникновении событий выше, которые вызывали суммирование, я мог инициировать целевые изменения / удаления / добавления. Вот что у меня есть.
var invoiceRows = function () {
var targetControl = '';
var getByInvoiceId = function (invoiceId) {
var data = $(targetControl.val());
for (var x = 0; x < data.length; x++) {
if (data[x][0].Value == invoiceId)
return data[x];
}
return null;
};
return {
init: function (selector, invoices) {
targetControl = $(selector);
//set up the gridrows to defaulted values
targetControl.val(invoices);
},
save: function (invoiceId, amount) {
var invoiceData = getByInvoiceId(invoiceId);
if (invoiceData) {
//update
} else {
//add new
}
},
remove: function (invoiceId) {
//remove row with invoiceid
}
}
} ();
Мой вопрос заключается в том, как легко изменить / удалить строки, а также добавить новые строки в мой объект json, а затем сохранить его обратно в скрытое поле? Это вообще возможно или есть лучший способ? Я открыт для предложений.