},
setValues(item, values) {
+ let $this = this;
var id = this.element.attr('id');
try {
$.each(values, function (k, v) {
var input = $(item).find('[name="' + id + '___' + k + '"]');
-
- if (input.is('.hiddenfield')) {
- $(input).parent().attr('data-values', JSON.stringify(v));
- } else if ($(input).nextAll('[type="checkbox"]').length > 0) {
- var cb = $(input).nextAll('[type="checkbox"]');
- cb.attr('name', cb.prev('[type="hidden"]').attr('name')).attr('value', '1');
- cb.prop('checked', v === true || v === '1' || v === 1);
- } else if ($(input).is('.select2_from_array')) {
- try {
- if ($(input).is("[data-ajax]") && $(input).find('option[value="' + k + '"]').length === 0) {
- var options = $(input).data('options');
- var newOption = new Option(options[v], v, false, false);
- $(input).append(newOption).trigger('change');
+ if (input.length === 0) {
+ var bunch = $(item).find('[bp-field-name="' + id + '___' + k + '"][bp-field-type="bunch"]');
+ var bunchName = $(bunch).attr('data-name');
+ $.each(v, function (kk, vv) {
+ let bunchInput = $(bunch).find('[name="' + bunchName + '___' + kk + '"]');
+ if (bunchInput.length > 0) {
+ $this.setInputVal(bunchInput, kk, vv);
}
- } catch (e) {
- }
- input.val(v);
- } else if (input) {
- input.val(v);
+ });
+ } else {
+ $this.setInputVal(input, k, v);
}
});
} catch (e) {
}
this.updateAndChange();
},
+
+ setInputVal: function (input, k, v) {
+ if (input.is('.hiddenfield')) {
+ $(input).parent().attr('data-values', JSON.stringify(v));
+ } else if ($(input).nextAll('[type="checkbox"]').length > 0) {
+ var cb = $(input).nextAll('[type="checkbox"]');
+ cb.attr('name', cb.prev('[type="hidden"]').attr('name')).attr('value', '1');
+ cb.prop('checked', v === true || v === '1' || v === 1);
+ } else if ($(input).is('.select2_from_array')) {
+ try {
+ if ($(input).is("[data-ajax]") && $(input).find('option[value="' + k + '"]').length === 0) {
+ var options = $(input).data('options');
+ var newOption = new Option(options[v], v, false, false);
+ $(input).append(newOption).trigger('change');
+ }
+ } catch (e) {
+
+ }
+ input.val(v);
+ } else if (input) {
+ input.val(v);
+ }
+ },
};
jQuery.fn.bunchmultiple = function () {