Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 24 additions & 24 deletions 2-ui/4-forms-controls/4-forms-submit/article.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
# Forms: event and method submit
# Formulários: evento e método submit

The `submit` event triggers when the form is submitted, it is usually used to validate the form before sending it to the server or to abort the submission and process it in JavaScript.
O evento `submit` é disparado quando o formulário é submetido. Geralmente, é usado para validar o formulário antes de enviá-lo ao servidor ou para abortar o envio e processá-lo no JavaScript.

The method `form.submit()` allows to initiate form sending from JavaScript. We can use it to dynamically create and send our own forms to server.
O método `form.submit()` permite iniciar o envio de formulários a partir do JavaScript. Podemos usá-lo para criar e enviar dinamicamente nossos próprios formulários para o servidor.

Let's see more details of them.
Vamos ver mais detalhes sobre eles.

## Event: submit
## Evento: submit

There are two main ways to submit a form:
Há duas maneiras principais de enviar um formulário:

1. The first -- to click `<input type="submit">` or `<input type="image">`.
2. The second -- press `key:Enter` on an input field.
1. A Primeira -- clicar em `<input type="submit">` ou `<input type="image">`.
2. A Segunda -- pressione `key:Enter` em um campo de input.

Both actions lead to `submit` event on the form. The handler can check the data, and if there are errors, show them and call `event.preventDefault()`, then the form won't be sent to the server.
Ambas as ações levam a execução do evento `submit` no formulário. O handler pode verificar os dados, e se houver erros, será mostrado e chamado o `event.preventDefault()`, logo, o formulário não será enviado para o servidor.

In the form below:
1. Go into the text field and press `key:Enter`.
2. Click `<input type="submit">`.
No formulário abaixo:
1. Vá para o campo de texto e pressione `key:Enter`.
2. Clique em `<input type="submit">`.

Both actions show `alert` and the form is not sent anywhere due to `return false`:
Ambas as ações mostram um `alert` e o formulário não é enviado a lugar nenhum devido ao `return false`:

```html autorun height=60 no-beautify
<form onsubmit="alert('submit!');return false">
First: Enter in the input field <input type="text" value="text"><br>
Second: Click "submit": <input type="submit" value="Submit">
Primeiro: Insira no campo de entrada <input type="text" value="text"><br>
Segundo: Clique em "submit": <input type="submit" value="Submit">
</form>
```

````smart header="Relation between `submit` and `click`"
When a form is sent using `key:Enter` on an input field, a `click` event triggers on the `<input type="submit">`.
````smart header="Relação entre `submit` e `click`"
Quando um formulário é enviado usando `key:Enter` no campo de entrada, um evento de `click` dispara no `<input type="submit">`.

That's rather funny, because there was no click at all.
Isso é até bem engraçado, porque não houve nenhum clique.

Here's the demo:
Aqui está uma demonstração:
```html autorun height=60
<form onsubmit="return false">
<input type="text" size="30" value="Focus here and press enter">
Expand All @@ -43,13 +43,13 @@ Here's the demo:

````

## Method: submit
## Método: submit

To submit a form to the server manually, we can call `form.submit()`.
Para enviar um formulário ao servidor manualmente, podemos chamar `form.submit()`.

Then the `submit` event is not generated. It is assumed that if the programmer calls `form.submit()`, then the script already did all related processing.
Nesse caso, o evento `submit` não é gerado. Podemos presumir que, se o programador chamar `form.submit()`, o script já terá realizado todo o processamento relacionado.

Sometimes that's used to manually create and send a form, like this:
Às vezes, isso é usado para criar e enviar um formulário manualmente, como este:

```js run
let form = document.createElement('form');
Expand All @@ -58,7 +58,7 @@ form.method = 'GET';

form.innerHTML = '<input name="q" value="test">';

// the form must be in the document to submit it
// o formulário deve estar incluído no documento para que ele seja enviado.
document.body.append(form);

form.submit();
Expand Down