dq.js 1.2 KB

123456789101112131415161718192021
  1. (function() {
  2. window.initDQ = function() {
  3. $(document)
  4. .off('change input paste', '.dq-edit-container input, .dq-edit-container textarea, .dq-edit-container select')
  5. .on('change input paste', '.dq-edit-container input, .dq-edit-container textarea, .dq-edit-container select', function() {
  6. let key = $(this).closest('.dq-line').attr('dq-key'),
  7. dataElem = $(this).closest('.dq-edit-container').find('>.dq-data-map').first(),
  8. current = JSON.parse(dataElem.text());
  9. current[key] = $(this).val();
  10. let serialized = JSON.stringify(current);
  11. dataElem.text(serialized);
  12. $(this).closest('form').find('input[name="data"]').val(serialized);
  13. let fullData = {
  14. lines: JSON.parse($(this).closest('.dq-edit-container').find('>.dq-definition').first().text()),
  15. dataMap: current
  16. };
  17. $(this).closest('form').find('input[name="data"]').val(JSON.stringify(fullData));
  18. });
  19. };
  20. addMCInitializer('dq-edit', initDQ, '.dq-edit-container');
  21. }).call(window);