# Verificação de Estado de Formulários. Como saber se é um novo formulário ou um rascunho via javascript?

Esta documentação explica como utilizar as funções `formContext.form.isNew()` e `formContext.form.isDraft()` para determinar o estado de um formulário, ou seja, se ele é um novo formulário, um rascunho ou uma edição de um rascunho.

<p class="callout warning">Essa funçao javascript deve ser utilizado dentro de um formulario na customização de código em Javascript.</p>

## Objetivo

O objetivo dessas funções é ajudar a identificar o estado atual do formulário e executar ações específicas com base em seu estado. Os estados podem ser:

- **Novo Formulário**: O formulário acabou de ser criado e nunca foi salvo.
- **Rascunho**: O formulário foi salvo como rascunho e pode estar em edição.
- **Edição de um Rascunho**: O formulário está sendo editado e é uma versão salva anteriormente como rascunho.

## Funções Utilizadas

### `formContext.form.isNew()`

Essa função retorna um valor booleano que indica se o formulário atual é **novo**.

- **true**: Se o formulário é novo (nunca foi salvo).
- **false**: Se o formulário já foi salvo previamente.

### `formContext.form.isDraft()`

Essa função também retorna um valor booleano e indica se o formulário está em **estado de rascunho**.

- **true**: Se o formulário é um rascunho.
- **false**: Se o formulário não é um rascunho.

## Exemplo de Uso

Aqui está um exemplo prático de como utilizar as funções `isNew()` e `isDraft()`:

```JavaScript
var isNewForm = formContext.form.isNew();
var isDraftForm = formContext.form.isDraft();

if(isNewForm){
    console.log('This is a new form');
}

if(isDraftForm){
    console.log('This is a draft form');
}

if(isNewForm && !isDraftForm){
    console.log('This is a new form and not a draft form');
}

if(!isNewForm && isDraftForm){
    console.log('This is an edition form and a draft form');
}

if(!isNewForm && !isDraftForm){
    console.log('This is an edition form and not a draft form');
}

```

### Explicação do Código

1. **Verificando se é um Novo Formulário:**
    
    ```JavaScript
    if (isNewForm) {
        console.log('This is a new form');
    }
    
    ```
    
    Aqui, se a função `isNew()` retornar `true`, significa que o formulário é novo e nunca foi salvo. O código exibe a mensagem "This is a new form".
2. **Verificando se é um Rascunho:**
    
    ```JavaScript
    if (isDraftForm) {
        console.log('This is a draft form');
    }
    
    ```
    
    Se a função `isDraft()` retornar `true`, significa que o formulário está em estado de rascunho. O código exibe a mensagem "This is a draft form".
3. **Verificando se o Formulário é Novo e Não é um Rascunho:**
    
    ```JavaScript
    if (isNewForm && !isDraftForm) {
        console.log('This is a new form and not a draft form');
    }
    
    ```
    
    Essa condição verifica se o formulário é novo (`isNewForm === true`) e não está em estado de rascunho (`isDraftForm === false`). Neste caso, o código exibe "This is a new form and not a draft form".
4. **Verificando se o Formulário é uma Edição de um Rascunho:**
    
    ```JavaScript
    if (!isNewForm && isDraftForm) {
        console.log('This is an edition form and edition of a draft form');
    }
    
    ```
    
    Essa condição verifica se o formulário já foi salvo antes (`isNewForm === false`) e está em estado de rascunho (`isDraftForm === true`). Ou seja, é uma edição de um formulário previamente salvo como rascunho.
5. **Verificando se o Formulário é uma Edição (sem rascunho):**
    
    ```JavaScript
    if (!isNewForm && !isDraftForm) {
        console.log('This is an edition form and not a draft form');
    }
    
    ```
    
    Essa condição verifica se o formulário já foi salvo antes (`isNewForm === false`) e não está em estado de rascunho (`isDraftForm === false`). Ou seja, é uma edição de um formulário e nao está salvo como rascunho.

##  

## Resumo

Essas duas funções são essenciais para verificar o estado atual de um formulário, e a partir delas, você pode:



- Saber se o formulário é novo e nunca foi salvo.
- Determinar se o formulário foi salvo como rascunho.
- Diferenciar entre novos formulários, rascunhos, edições e edições de rascunhos.

Com base nessas informações, você pode executar ações específicas, como mostrar mensagens, habilitar/desabilitar funcionalidades, ou realizar diferentes tipos de validações.