# j-Input

> j-Input É um componente de entrada multifuncional que suporta muitas funcionalidades e é otimizado para uso diário. j-Textbox e j-DropdownTrabalha apenas com jComponent +v17.

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

_j-Input_ é multifuncional `input` componente que suporta muitas funcionalidades e é otimizado para uso diário. `j-Textbox` e `j-Dropdown`Trabalha apenas com jComponent `+v17`.


__Configuração__:

- `type {String}` opcional, valores:
	- Valor vazio significa padrão `text`
	- `email`,
	- `multiline`
	- `checkbox`
	- `phone`
	- `password`
	- `zip`
	- `date` (necessita componente `datepicker`)
	- __NEW__: `datetime` (necessita componente `datepicker`)
	- `time` (necessita componente `timepicker`)
	- `color` (necessita componente `colorpicker`)
	- `icon` (necessita componente `faicons`)
	- `emoji` (necessita componente `emoji`)
	- `url`
	- `number`
	- `number2` (Nulável)
	- `search`
	- `lower`
	- `upper`
	- `slug`
	- `id`
	- Título: `radiobutton`
	- Título: `tags`
	- Título: `tags-lower`
	- Título: `tags-upper`
	- Título: `tags-id`
	- Título: `tags-email`
	- Título: `tags-slug`
	- Título: `tags-phone`
	- Título: `tags-url`
- `required {Boolean}` opcional, permite o "requisito" (default: `false`)
- `icon {String}` opcional, ícone para o rótulo, por exemplo, `home`, `cog`, etc.
- `licon {String}` opcional, ícone esquerda, por exemplo, `home`, `cog`, etc.
- `liconclick {String}` opcional, um caminho para o método `function(component, input)`
- `ricon {String}` opcional, ícone direita, por exemplo, `home`, `cog`, etc.
- `riconclick {String}` opcional, um caminho para o método `function(component, input)`
- `label {String}` opcional, um rótulo (default é conteúdo HTML)
- `autofocus {Boolean}` opcional, focando a entrada (default: `false`)
- `align {String}` Opcional é `left` (defeitualmente em `2` / `right` ou `1` / `center`
- `after {String}` opcional, significa um carrinho após a etiqueta (default: `:`)
- `autofill  {Boolean/String}` opcional, permite a função de autofilação do navegador (`string` será usado como um nome de entrada, padrão: `false`)
- `placeholder {String}` opcional, adiciona um texto `placeholder` à entrada
- `maxlength {Number}` opcional, fixa-se uma duração máxima de carros (default: `200`)
- `minlength {Number}` opcional, estabelece um comprimento mínimo de carros
- `minvalue {Number}` opcional, um valor mínimo para o tipo `number`
- `maxvalue {Number}` opcional, um valor máximo para o tipo `number`
- `increment {Number}` opcional, estabelece um valor para incrementar (default: `1`)
- `validate {String}` opcional, uma condição para validação de valor, pode conter um link para `function(value)` ou `!!value.match(/[a-z]+/)`
- `format {String}` O formato de saída, por exemplo, para `date` Tipo de: `yyyy-MM-dd`Para `time` Tipo de: `HH:mm`Para `number` Você pode definir max. decimals (default: `auto`)
- `disabled {Boolean}` opcional, desabilita este componente
- `error {String}` opcional, adiciona um texto `string` abaixo do componente
- `autocomplete {String}` opcional, precisa de conter um link para uma função, é desencadeado no evento `focus`
- `spaces {Boolean}` opcional, permite espaços caso contrário ele os remove (default: `true`)
- `innerlabel {Boolean}` opcional, permite a etiqueta interna (default: `true`)
- `dirsource {String}` opcional, o caminho para uma fonte de dados ou __NEW__ para `function(search, next)` (o caminho deve conter `/` ou __NOV__: `id|name,id|name`
- `dircustom {String/Boolean}` opcional, pode conter um caminho para `function(val, next(new_val))` ou pode ser `Boolean`.Esta opção pode permitir adicionar um valor personalizado (valor não definido na fonte de dados)
- `dirrender {String}` opcional, um caminho para `function(item, text)` (deve retornar HTML para `j-Directory`), esta função pode afetar a lista de itens em `j-Directory`
- `dirminwidth {Number}` opcional, uma largura mínima para `j-Directory`, padrão: `200`
- `dirmaxwidth {Number}` opcional, uma largura máxima para `j-Directory`
- `diroffsety {Number}` opcional, `Y` offset (default: `0`)
- `diroffsetx {Number}` opcional, `X` offset (default: `0`)
- `dirplaceholder {String}` opcional, um local para `j-Directory`
- `dirempty {String}` opcional, adiciona um campo vazio para `j-Directory`
- `dirkey {String}` opcional, um nome chave para a leitura de `text` em `dirsource` (default: `name`)
- `dirvalue {String}` opcional, um nome chave para a leitura de `value` em `dirsource` (default: `id`)
- `direxclude {Boolean}` opcional, exclui um valor atual de `j-Directory` (default: `true`)
- `dirsearch {Boolean|String}` opcional, pode desativar a pesquisa em `j-Directory` (default: `true`) ou `{String}` (nome-chave) pode mapa um valor para pesquisar
- `dirraw {Boolean}` opcional, pode desativar a fuga de itens para `j-Directory` (default: `false`)
- `dirdetail {String}` opcional, um link para a função `function(val, next(NEW_TEXT))` (alvo para `dirsource`)
- `dirfilter {String}` opcional, um método condicional de filtro inline, por exemplo: `value.id !== 2` (alvo para `dirsource`)
- __NEW__: `dirrawrender {Boolean}` opcional, se o `dirsource` não inclui valor ele renderá um valor bruto (default: `true`)
- `mask {String}` opcional, pode conter uma máscara na forma de `###/##` (`#` é substituído por um carrinho)
- `maskregexp {String}` opcional, pode conter RegExp para cada char na forma `\d,\d,\d,null,\d,\d` (`,` é delimitador)
- `masktidy {Boolean}` opcional, o componente só devolve carros crus sem carros fixos (default: `false`)
- `autosource {String}` um caminho para a fonte de pesquisa `Array` (__NEW__) ou `function(search, render(arr))` para pesquisa dinâmica
- `autovalue {String}` um caminho de propriedade para o valor em `autosource`, padrão: `name`
- `autoexec {String}` um caminho método `function(item, next(value_to_input))`
- `searchalign {Number}` Você pode alinhar o ícone `type:search` Para sair (`2`ou bem (`1`Defeituoso
- `forcevalidation {Boolean}` permite validação de força para `phone` e `email` (default: `true`)
- `camouflage {Boolean|String}` esconde o valor na entrada depois de ser desencadeado `blur` evento (default: `false`) ou pode ser `String` que será usado como um camuflagem
- `monospace {Boolean}` permite a letra `monospaced` (default: `false`)
- `multiple {Boolean}` permite caixas de verificação se o `dirsource` não for vazio
- `tabindex {Number}` adiciona um tabindex (default: `0`)
- `tabs {Boolean}` permite tabas para multilinas (default: `true`)
- Edição de campo de texto de bloco `readonly {Boolean}` (default: `false`)
- `transform {String}` um link para o `function(value, config)` para a transformação de valores introduzidos
- `multiline {Boolean}` funciona apenas com o tipo `radiobutton`
- `separator {String|Boolean}`: um separador para valores multi-referidos
- `realtime {Boolean}` permite a ligação em tempo real (default: `true`)
- `exec {String}` um link para o `function(value, element)` que será avaliado se a entrada for afetada

__Interessante em:__

- `type:date` necessita __`datepicker`__ componente
- `type:time` necessita __`timepicker`__ componente
- `dirsource:path.to.datasource` necessita __`directory`__ componente
- Se `licon` ou `ricon` começa com `!`, então o componente faz um valor razoável em vez de `icon`.
- A classe `ui-input-ok` é vinculada quando a entrada é validada e preenchida.
- `SET('path', 'camouflage', 'show');` mostra o valor para 2000 ms

```video
https://www.youtube.com/watch?v=Ne3ezaP0w34
```

Use-o com `<ui-component name="input">`Quando o componente ainda não está carregado, jComponent Descarrega-o no primeiro uso do endereço `DEF.fallback` (a partir do Componentator CDN por padrão). autor: Peter Širka. fonte: o Componentator Reserva de componentes, licença MIT.

```html example.html
<ui-component name="LAZY directory" config="placeholder:Search..."></ui-component>
<ui-component name="LAZY datepicker"></ui-component>
<ui-component name="LAZY icons"></ui-component>

<div style="width:400px">
	<ui-component name="input" path="form.framework" config="placeholder:Choose a framework;dirsource:frameworks" class="m">Framework</ui-component>
	<ui-component name="input" path="form.terms" config="type:checkbox" class="m">I agree with terms</ui-component>
	<ui-component name="input" path="form.notes" config="type:multiline;innerlabel:1;placeholder:Enter notes" class="m">Notes</ui-component>
	<ui-component name="input" path="form.frameworks" config="placeholder:Select frameworks;multiple:true;dirsource:frameworks">Frameworks</ui-component>
	<br />
	<ui-component name="input" path="form.city" config="required:1;placeholder:Where do you live?;dirsource:cities;dircustom:true">City</ui-component>
	<br />
	<ui-component name="input" path="cities" config="type:tags;placeholder:Type a tag and press enter">Tags</ui-component>
	<br />
	<ui-component name="input" path="form.date" config="placeholder:Enter date;type:date;required:true;innerlabel:true">Date</ui-component>
	<br />
	<ui-component name="input" path="form.search" config="placeholder:Search...;type:search;innerlabel:true">Search</ui-component>
	<br />
	<ui-component name="input" path="form.password" config="placeholder:Type a password...;type:password">Password</ui-component>
	<br />
	<ui-component name="input" path="form.zip" config="mask:###-##;maskregexp:\d,\d,\d,null,\d,\d">ZIP</ui-component>
	<br />
	<ui-component name="input" path="form.email" config="placeholder:example@email.com;type:email">Email</ui-component>
	<br />
	<ui-component name="input" path="form.phone" config="placeholder:+421;type:phone">Phone</ui-component>
	<br />
	<ui-component name="input" path="form.radio" config="type:radiobutton;dirsource:Male,Female,Unknown">Gender</ui-component>
	<br />
	<ui-component name="input" path="form.radio" config="type:radiobutton;dirsource:Male,Female,Unknown;multiline:1">Gender</ui-component>
	<br />
	<div style="width:150px">
		<ui-component name="input" path="form.age" config="type:number;innerlabel:false">Your age</ui-component>
	</div>
</div>

<script>
	var frameworks = [{ id: 0, name: 'Nothing', template: '<b>{{ name }}</b>' }, { id: 1, name: 'jComponent' }, { id: 2, name: 'Angular.js' }, { id: 3, name: 'React' }];
	var cities = ['Slovakia', 'Poland', 'Hungary', 'Germany'];
	var form = {};
	form.age = 30;
</script>
```
