화면에 표시되는 송장 목록이 있습니다. 현재 사용자는 체크 박스를 사용하여 송장을 선택하거나 선택을 취소하거나 지불하려는 금액을 변경할 수 있습니다. 이 경우 모든 송장에 대해 지불 할 금액이 합산되어 표시됩니다.jquery 내의 json 컬렉션 수정
궁극적 인 목표는 서버에서 오는 데이터 배열의 배열을 추적하는 것입니다. 표준화되었으므로 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}]]" />
, 데이터는 데이터에 대한 빈 자리가 많이 있습니다.
내가 뭘하려는 건 합계가 발생하기 때문에 이벤트가 발생하면 이벤트 편집/삭제/추가를 시작할 수 있도록 자바 스크립트 개체를 만드는 것입니다. 여기까지 내가 지금까지 가지고있는 것.
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 개체에 새 행을 추가 한 다음 숨겨진 필드에 다시 저장? 그것도 가능하거나 더 좋은 방법이 있습니까? 나는 제안에 개방적이다. 이와 개체를 제거 할 때
var dataObj = eval($("#InvoicingGridRows").val());
내가 한 번만 할 거라고 다음 모든 작업을 수행합니다