# j-Validation

> El componente contiene el mismo código fuente que el componente j-Validate.

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

El componente contiene el mismo código fuente que el componente `j-Validate`.


__Configuración__:

- `if {String}` puede contener condiciones JS para evaluación
	- `value {Object}` contiene el modelo completo
	- `path {String}` contiene ruta modificada
	- __debe devolver booleano__
- `selector {String}` selector jQuery para deshabilitar (predeterminado: `button[name="submit"]`)
- `delay {Number}` un tiempo de espera para la validación (predeterminado: `100`)
- Banderas `flags {String}` para una mejor validación, pueden contener componentes `visible,hidden,enabled,disabled`
	- `enabled` valida todos los componentes que tienen habilitados los elementos `input`, `textarea` o `select`.
	- `disabled` valida todos los componentes que están deshabilitados con los elementos `input`, `textarea` o `select`.
	- `hidden` valida todos los componentes que están ocultos
	- `visible` validar todos los componentes que son visibles
- `track {String}` puede contener rutas divididas por coma, y el cambio manual de cada ruta (a través de los métodos `SET()`, `UPD()`, `INC()`, etc.) evaluará la validación.
- `validonly {Boolean}` omite el estado `dirty` (predeterminado: `false`)
- __NEW__ `changes {Boolean}` permite comparar cambios solo entre el modelo de entrada y el formulario (predeterminado: `false`)
- __NEW__ `strictchanges {Boolean}` habilita cambios de comparación estrictos (de lo contrario, se eliminarán los valores `null`, `false`, `empty strings` y `0`), predeterminado: `false`
- __NEW__ `exec {String}` opcional, un enlace al `function(data)` que se ejecuta cuando se valida y cambia el modelo
- __NEW__ `output {String}` opcional, un enlace al `function(valid)` o ruta

__Es bueno saberlo__:

- el componente agrega la clase `ui-validate-ok` al elemento si el modelo es válido
- el componente agrega la clase `ui-validate-no` al elemento si el modelo no es válido
- El componente agrega la clase `ui-validate-modified` al elemento si se cambia el modelo.

Úselo con `<ui-component name="validation">`. Cuando el componente aún no está cargado, jComponent lo descarga en el primer uso desde la dirección en `DEF.fallback` (el CDN Componentator de forma predeterminada). Autor: Peter Širka. Fuente: repositorio de componentes Componentator, licencia MIT.

```html example.html
<!-- REMOVE -->
<ui-component name="textbox" path="model.name" config="required:true">Name</ui-component>
<br />
<br />

<!-- VALIDATION -->
<ui-component name="validation" path="model">
	<button name="submit" disabled="disabled" onclick="show_me()">SUBMIT FORM</button>
</ui-component>

<style type="text/css">
	button:disabled {
		background-color: #cccccc;
		color: #666666;
		cursor: not-allowed;
	}
</style>

<script>
    function show_me() {
        alert('ok');
    }
</script>
```
