La pestaña «Condiciones y reglas» en la configuración del formulario es el editor visual más moderno para la lógica de los campos: mostrar u ocultar campos, convertir campos obligatorios en dinámicos, calcular valores, filtrar opciones. Es el método recomendado para la mayoría de los casos de uso.
> ⚠️ Estado beta: La función está activa, pero seguimos probando casos extremos. Si una configuración concreta no responde como se espera: envía un breve correo electrónico a hello@propform.io con el ID del formulario; lo revisaremos.
Por cada regla, eliges una acción que se ejecutará cuando se cumpla la condición:
| Acción | Efecto |
|---|---|
| Ocultar | El campo ya no se muestra (el valor permanece vacío al enviar) |
| Mostrar | Los campos ocultos por defecto se hacen visibles |
| Hacer campo obligatorio | La validación obliga a introducir datos antes de enviar |
| Bloquear | El campo permanece visible pero no se puede editar (p. ej., tras el primer envío) |
| Ocultar opciones | En selección única/múltiple: eliminar determinados valores de la selección |
| Establecer valor | El campo recibe un valor fijo |
| Calcular valor | El campo recibe el resultado de una fórmula (véase más abajo) |
| Cambiar etiqueta | Cambiar dinámicamente la etiqueta del campo (p. ej., «Precio de compra» → «Precio de alquiler») |
Las condiciones comprueban el valor de otro campo. Operadores disponibles:
ist gleich / ist nicht gleichist leer / ist nicht leerenthält / enthält nicht (para campos de selección múltiple y de texto)ist größer als / ist kleiner als (para números)ist größer-gleich / ist kleiner-gleichLas condiciones múltiples por regla se combinan con Y (todas deben cumplirse) o O (basta con una), seleccionable por regla.
Con la acción «Calcular valor» puedes combinar aritméticamente valores de varios campos — por ejemplo, calcular una comisión interna automáticamente a partir del precio de compra y el porcentaje de comisión.
La fórmula utiliza una sintaxis de barra vertical con ID de campo:
{{multiply:field:125802|field:125803|/100}}
→ multiplica los valores del ID de campo 125802 y del ID de campo 125803, y divide el resultado entre 100.
Configuración de ejemplo: Tres campos en el formulario — Kaufpreis (campo numérico), Prozent Innenprovision (campo numérico), Summe Innenprovision (campo numérico).
1. Averiguar los ID de campo
El ID de campo es el ID DOM del elemento <input> en el formulario. Así es como lo encuentras:
<div> circundante: el ID del campo se encuentra en la propiedad ID (p. ej., 125802)2. Crear regla
Pestaña «Condiciones y reglas» → Nueva regla:
Kaufpreis no está vacío Y Prozent Innenprovision no está vacíoSumme Innenprovision{{multiply:field:<ID-Kaufpreis>|field:<ID-Provisions-Prozent>|/100}}
3. Prueba en vivo
Abrir formulario → Introducir precio de compra → Introducir porcentaje de comisión → El total se calcula automáticamente.
Los operadores se encadenan con la barra vertical |:
| Patrón | Significado | Ejemplo |
|---|---|---|
multiply:... |
Multiplicación | `multiply:field:A |
add:... |
Suma | `add:field:A |
subtract:... |
Restar | `subtract:field:A |
divide:... |
Dividir | `divide:field:A |
/<zahl> |
Dividir por un valor fijo | `multiply:field:A |
*<zahl> |
Multiplicar por un valor fijo | `add:field:A |
field: frente a field_value:| Sintaxis | ¿Cuándo se utiliza? |
|---|---|
field:<ID> |
En campos numéricos: devuelve el valor introducido. En selección única: devuelve el nombre claro (p. ej., «Piso») |
field_value:<ID> |
En selección única: devuelve el valor de clave técnica (p. ej., ind_3673). Importante para comparaciones en condiciones IF() |
En campos puramente numéricos, field: y field_value: devuelven lo mismo: ambos funcionan.
> 💡 Nota sobre la experiencia de usuario: La configuración actual mediante ID de DevTools y sintaxis de tuberías no es muy intuitiva. Tenemos previsto incluir un editor visual de fórmulas.
## Condiciones unidireccionales frente a bidireccionales
La mayoría de las acciones se aplican de forma persistente (unidireccional): una vez que se cumple la condición, el efecto permanece, incluso si la condición vuelve a ser falsa. Solo unas pocas acciones vuelven automáticamente al estado original (bidireccional).
| Acción | Comportamiento |
|---|---|
| Ocultar / Mostrar | Unidireccional (sticky) — el estado de visibilidad establecido se mantiene; para revertirlo necesitas una segunda regla |
| Bloquear / Desbloquear | Unidireccional |
| Solo lectura / Editable | Unidireccional |
| Campo obligatorio / Opcional | Unidireccional (STICKY) — si la condición vuelve a ser falsa, se mantiene el estado de obligatorio |
| Ocultar opciones | Bidireccional — las opciones se vuelven a mostrar automáticamente cuando la condición pasa a ser falsa |
| Volver a mostrar opciones | Unidireccional (sticky show) |
| Establecer valor / calcular (campos estándar) | Unidireccional — el valor establecido se mantiene |
| Establecer valor para campos de imagen/vídeo | Bidireccional — src se restablece automáticamente al valor original |
| Cambiar etiqueta | Bidireccional — la etiqueta original vuelve automáticamente cuando la condición pasa a ser falsa |
> 💡 Para acciones unidireccionales: si quieres deshacerlas, necesitas una segunda regla con la condición inversa que restablezca el estado original. Ejemplo: Una regla muestra el campo, una segunda regla lo vuelve a ocultar.
Si varias reglas afectan al mismo campo (p. ej., la regla 1 establece el valor en X, la regla 2 establece el valor en Y), la prioridad es decisiva:
> 💡 Práctica recomendada: Asigna las prioridades deliberadamente en incrementos de 10 (10, 20, 30, …), para que luego puedas insertar reglas entre ellas.
Vermarktungsart = MieteKaufpreis → Cambiar la etiqueta a KaltmieteKaufpreis → Sufijo de la denominación (€/Monat)Provisionsfrei = JaProvision Außen, Provisions-Prozent, MwSt. → OcultarVertragsart = KaufvertragKäufer-Vorname + Käufer-Nachname → Campo obligatorioKaufpreis no está vacío Y Provisions-Prozent no está vacíoSumme Innenprovision → Calcular valor → {{multiply:field:KAUFPREIS_ID|field:PROZENT_ID|/100}}Bundesland = BayernRegion → Ocultar opciones → todas excepto las regiones bávaras_calculate(IF(...)) para las URL de las páginas de agradecimiento