# j-Choose

> Съставът е алтернатива на CheckboxListExpert и RadioButtonListexpert.

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: bg
Content-SHA256: 614fc02f0a273ea09ef3e82eb5b767a6e4ee01ecf3a2f0cfe741031dcbfb38e6
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: components@910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e
Review: not-recorded

Съставът е алтернатива на `CheckboxListExpert` и `RadioButtonListExpert`.


__Конфигуриране__:

- `limit {Number}` ограничение на селекцията, `1` Ще се върне стойност, `>1` Ще се върне набор от стойности (дефолт: `1`)
- `datasource {String}` - пътят към източника на данни (предварително: празен)
- `required {Boolean}` позволява валидиране (предварително: `false`)
- `key {String}` Една `identifier` Ключово име за източника на данни (предварително: `id`)
- `attr {String}` a `data-[attr]` За съхранение на `identifier` (Съгласно с дефолт `id`)
- `selector {String}` е jQuery селектор за елементи (предварително: `.selection`)
- `class {String}` избрана класа (предварително: `selected`)
- Конвертиращ тип `type {String}` поддържа `string` или `number` (предварително: `string`)
- `uncheck {Boolean}` позволява да се премахне избраната стойност за `limit:1` (предварително: `false`)
- `disabled {Boolean}` отключва компонента
- `click {String}` е връзка към `function(val)` която се оценява, когато потребителят променя стойността
- __NEW__: `indexer {String}` е HTML селектор за свързване на избрания индекс

Използвайте го с `<ui-component name="choose">`Когато компонентът все още не е зареден, jComponent Изтегляне на първия адрес в `DEF.fallback` (След това Componentator Източник: Питър Шерка Componentator Съставни съставки, лиценз на MIT.

```html example.html
<style>
	.iconmenu { height: 60px; text-align: center; }
	.iconmenu i { font-size: 20px; display: block; padding: 10px 0 0; }
	.iconmenu span { font-size: 12px; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 3px 5px 0; color: #777; }
	.iconmenu > div.selected { background-color: rgba(0,0,0,0.07); }
	.iconmenu > div { height: 60px; width: 75px; border: 1px solid #E0E0E0; border-left-width: 0; float: left; cursor: pointer; }
	.iconmenu > div:first-child { border-left-width: 1px; border-top-left-radius: var(--radius); border-bottom-left-radius: var(--radius); }
	.iconmenu > div:last-child { border-top-right-radius: var(--radius); border-bottom-right-radius: var(--radius); }
</style>

<ui-component name="choose" path="myselectionsingle" config="selector:div;limit:1" class="iconmenu m">
	<div data-id="male">
		<i class="ti ti-male"></i>
		<span>Male</span>
	</div>
	<div data-id="female">
		<i class="ti ti-female"></i>
		<span>Female</span>
	</div>
</ui-component>

<ui-component name="choose" path="myselectionmultiple" config="selector:div;limit:2;indexer:b" class="iconmenu m">
	<div data-id="male">
		<i class="ti ti-male"></i>
		<span>Male</span><b></b>
	</div>
	<div data-id="female">
		<i class="ti ti-female"></i>
		<span>Female</span><b></b>
	</div>
	<div data-id="unknown">
		<i class="ti ti-question-circle"></i>
		<span>Unknown</span><b></b>
	</div>
</ui-component>

<div>Output single: <code><ui-bind path="myselectionsingle" config="text:JSON.stringify(value)"></ui-bind></code></div>
<div>Output multiple: <code><ui-bind path="myselectionmultiple" config="text:JSON.stringify(value)"></ui-bind></code></div>
```
