Skip to content

Interaction: alert, prompt, confirm #72

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
May 1, 2022
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
JavaScript-code:
Kód v JavaScriptu:

```js demo run
let name = prompt("What is your name?", "");
alert(name);
let jméno = prompt("Jak se jmenuješ?", "");
alert(jméno);
```

The full page:
Celá stránka:

```html
<!DOCTYPE html>
Expand All @@ -15,8 +15,8 @@ The full page:
<script>
'use strict';

let name = prompt("What is your name?", "");
alert(name);
let jméno = prompt("Jak se jmenuješ?", "");
alert(jméno);
</script>

</body>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ importance: 4

---

# A simple page
# Jednoduchá stránka

Create a web-page that asks for a name and outputs it.
Vytvořte webovou stránku, která se zeptá na jméno a pak ho zobrazí.

[demo]
82 changes: 41 additions & 41 deletions 1-js/02-first-steps/06-alert-prompt-confirm/article.md
Original file line number Diff line number Diff line change
@@ -1,105 +1,105 @@
# Interaction: alert, prompt, confirm
# Interakce: alert, prompt, confirm

As we'll be using the browser as our demo environment, let's see a couple of functions to interact with the user: `alert`, `prompt` and `confirm`.
Protože jako demonstrační prostředí budeme používat prohlížeč, podíváme se na několik funkcí sloužících k interakci s uživatelem: `alert`, `prompt` a `confirm`.

## alert

This one we've seen already. It shows a message and waits for the user to press "OK".
Tuto funkci jsme už viděli. Zobrazí zprávu a počká, až uživatel stiskne tlačítko „OK“.

For example:
Příklad:

```js run
alert("Hello");
alert("Ahoj");
```

The mini-window with the message is called a *modal window*. The word "modal" means that the visitor can't interact with the rest of the page, press other buttons, etc, until they have dealt with the window. In this case -- until they press "OK".
Miniokno se zprávou se nazývá *modální okno*. Slovo „modální“ znamená, že uživatel nemůže komunikovat se zbytkem stránky, mačkat jiná tlačítka apod., dokud nevyhodnotí toto okno -- v tomto případě dokud nestiskne „OK“.

## prompt

The function `prompt` accepts two arguments:
Funkce `prompt` přijímá dva argumenty:

```js no-beautify
result = prompt(title, [default]);
výsledek = prompt(titulek, [default]);
```

It shows a modal window with a text message, an input field for the visitor, and the buttons OK/Cancel.
Zobrazí modální okno s textovou zprávou, vstupní pole pro návštěvníka a tlačítka OK a Storno.

`title`
: The text to show the visitor.
`titulek`
: Text, který se má zobrazit návštěvníkovi.

`default`
: An optional second parameter, the initial value for the input field.
: Volitelný druhý parametr, úvodní hodnota ve vstupním poli.

```smart header="The square brackets in syntax `[...]`"
The square brackets around `default` in the syntax above denote that the parameter is optional, not required.
```smart header="Hranaté závorky v syntaxi `[...]`"
Hranaté závorky okolo `default` ve výše uvedené syntaxi označují, že parametr je dobrovolný a není vyžadován.
```

The visitor can type something in the prompt input field and press OK. Then we get that text in the `result`. Or they can cancel the input by pressing Cancel or hitting the `key:Esc` key, then we get `null` as the `result`.
Návštěvník může do vstupního pole něco napsat a stisknout OK. Pak získáme napsaný text jako `výsledek`. Nebo může zrušit vstup stisknutím tlačítka Storno nebo klávesy `key:Esc`. Pak jako `výsledek` obdržíme `null`.

The call to `prompt` returns the text from the input field or `null` if the input was canceled.
Volání `prompt` vrátí text ze vstupního pole nebo `null`, pokud byl vstup zrušen.

For instance:
Příklad:

```js run
let age = prompt('How old are you?', 100);
let věk = prompt('Kolik je ti let?', 100);

alert(`You are ${age} years old!`); // You are 100 years old!
alert(`Je ti ${věk} let!`); // Je ti 100 let!
```

````warn header="In IE: always supply a `default`"
The second parameter is optional, but if we don't supply it, Internet Explorer will insert the text `"undefined"` into the prompt.
````warn header="Pro IE vždy uvádějte `default`"
Druhý parametr je nepovinný, ale jestliže ho neuvedeme, Internet Explorer vloží do dotazu text `"undefined"`.

Run this code in Internet Explorer to see:
Spusťte si v Internet Exploreru tento kód a uvidíte:

```js run
let test = prompt("Test");
```

So, for prompts to look good in IE, we recommend always providing the second argument:
Aby dotazy vypadaly dobře i v IE, doporučujeme vždy uvádět i druhý argument:

```js run
let test = prompt("Test", ''); // <-- for IE
let test = prompt("Test", ''); // <-- pro IE
```
````

## confirm

The syntax:
Syntaxe:

```js
result = confirm(question);
výsledek = confirm(otázka);
```

The function `confirm` shows a modal window with a `question` and two buttons: OK and Cancel.
Funkce `confirm` zobrazí modální okno s otázkou -- v našem případě obsaženou v promenné `otázka` -- a dvěma tlačítky: OK a Storno.

The result is `true` if OK is pressed and `false` otherwise.
Výsledek bude `true`, jestliže uživatel stiskne OK, jinak bude `false`.

For example:
Příklad:

```js run
let isBoss = confirm("Are you the boss?");
let jeŠéf = confirm("Jsi šéf?");

alert( isBoss ); // true if OK is pressed
alert( jeŠéf ); // pokud bylo stisknuto OK, tak true
```

## Summary
## Shrnutí

We covered 3 browser-specific functions to interact with visitors:
Uvedli jsme tři funkce specifické pro prohlížeče, které umožňují interakci s návštěvníky:

`alert`
: shows a message.
: Zobrazí zprávu.

`prompt`
: shows a message asking the user to input text. It returns the text or, if Cancel button or `key:Esc` is clicked, `null`.
: Zobrazí zprávu, která požádá uživatele o zadání textu. Vrátí zadaný text nebo `null`, pokud uživatel stiskl tlačítko Storno nebo klávesu `key:Esc`.

`confirm`
: shows a message and waits for the user to press "OK" or "Cancel". It returns `true` for OK and `false` for Cancel/`key:Esc`.
: Zobrazí zprávu a počká, než uživatel stiskne „OK“ nebo „Storno“. Vrátí `true`, pokud stiskl OK, nebo `false`, pokud stiskl Storno nebo klávesu `key:Esc`.

All these methods are modal: they pause script execution and don't allow the visitor to interact with the rest of the page until the window has been dismissed.
Všechny tyto metody jsou modální: pozastaví vykonávání skriptu a neumožní návštěvníkovi komunikovat se zbytkem stránky, dokud okno nezmizí.

There are two limitations shared by all the methods above:
Všechny uvedené metody mají dvě omezení:

1. The exact location of the modal window is determined by the browser. Usually, it's in the center.
2. The exact look of the window also depends on the browser. We can't modify it.
1. Poloha modálního okna je stanovena prohlížečem. Obvykle je uprostřed.
2. Vzhled okna závisí na prohlížeči. Nelze jej upravit.

That is the price for simplicity. There are other ways to show nicer windows and richer interaction with the visitor, but if "bells and whistles" do not matter much, these methods work just fine.
To je cena za jednoduchost. Existují jiné způsoby, kde můžete upravit vzhled oken a umožnit bohatší interakci s návštěvníkem, ale pokud nám na těchto věcech příliš nezáleží, tyto metody fungují dobře.