Sha256: 64deea129071cd9a44eba496fc90488ed91287a4a3baed7ab96e7dfd842ed298
Contents?: true
Size: 883 Bytes
Versions: 31
Compression:
Stored size: 883 Bytes
Contents
/* eslint-disable require-jsdoc */ class OptionAttachedInputsComponent { constructor(options = {}) { this.wrapperField = options.wrapperField; this.controllerFieldSelector = options.controllerFieldSelector; this.dependentInputSelector = options.dependentInputSelector; this.controllerSelector = this.wrapperField.find(this.controllerFieldSelector); this._bindEvent(); this._run(); } _run() { this.controllerSelector.each((idx, el) => { const $field = $(el); const enabled = $field.is(":checked"); $field.parents("div.collection-input").find(this.dependentInputSelector).prop("disabled", !enabled); }); } _bindEvent() { this.controllerSelector.on("change", () => { this._run(); }); } } export default function createOptionAttachedInputs(options) { return new OptionAttachedInputsComponent(options); }
Version data entries
31 entries across 31 versions & 1 rubygems