diff --git a/frappe/public/js/frappe/form/controls/select.js b/frappe/public/js/frappe/form/controls/select.js index 7df2bbfbaa..532de7edf9 100644 --- a/frappe/public/js/frappe/form/controls/select.js +++ b/frappe/public/js/frappe/form/controls/select.js @@ -73,7 +73,8 @@ frappe.ui.form.ControlSelect = class ControlSelect extends frappe.ui.form.Contro if(this.$input) { var selected = this.$input.find(":selected").val(); - this.$input.empty().add_options(options || []); + this.$input.empty(); + frappe.ui.form.add_options(this.$input, options || []); if(value===undefined && selected) { this.$input.val(selected); @@ -101,39 +102,47 @@ frappe.ui.form.ControlSelect = class ControlSelect extends frappe.ui.form.Contro } }; +frappe.ui.form.add_options = function(input, options_list) { + let $select = $(input); + if (!Array.isArray(options_list)) { + return $select; + } + // create options + for(var i=0, j=options_list.length; i').html(cstr(label)) + .attr('value', value) + .prop('disabled', is_disabled) + .prop('selected', is_selected) + .appendTo($select.get(0)); + } + // select the first option + $select.get(0).selectedIndex = 0; + $select.trigger('select-change'); + return $select; +}; + // add