25 август 2025

Foydalanuvchi bilan muloqot: alert, prompt, confirm

Ushbu bo’limda biz JavaScript ning brauzer yoki serverdan bog’liq bo’lmagan taraflarini ko’rib chiqamiz.

Ammo biz hali ham brauzerni demo muhitimiz sifatida ishlatamiz, shuning uchun uning kamida bir nechta foydalanuvchi interfeysi funktsiyalarini bilishimiz kerak. Ushbu bobda biz brauzerning ogohlantirish alert, so’rov prompt va tasdiqlash confirm funktsiyalari bilan tanishamiz.

alert

Sintaksis:

alert(message);

Bu xabarni ko’rsatadi va foydalanuvchi “OK” tugmasini bosguncha skriptning bajarilishini to’xtatadi.

Masalan:

alert("Hello");

Xabar ko’rsatilgan mini-oyna modal oyna deb ataladi. “Modal” so’zi tashrif buyuruvchi sahifaning qolgan qismi bilan aloqa qila olmasligi, boshqa tugmalarni bosolmasligi va hokazolarni anglatadi, ta ular oynani yopmaguncha. Bunday holda – ular “OK” tugmasini bosmaguncha.

prompt

prompt funktsiyasi ikkita parametrni qabul qiladi:

result = prompt(title, [default]);

Bu matn xabari bilan modal oyna ko’rsatadi, tashrif buyuruvchi uchun kiritish maydoni va OK/CANCEL tugmalari.

title
Foydalanuvchiga ko’rsatish uchun matn.
default
Ixtiyoriy ikkinchi parametr, kiritish maydoni uchun boshlang’ich qiymat.
Sintaksisdagi kvadrat qavslar [...]

Yuqoridagi sintaksisdagi default atrofidagi kvadrat qavslar parametr ixtiyoriy ekanligini, talab qilinmasligini bildiradi.

Tashrif buyuruvchi prompt kiritish maydoniga biror narsa yozishi va OK tugmasini bosishi mumkin. Shunda biz o’sha matnni result da olamiz. Yoki ular Cancel tugmasini bosish yoki Esc tugmasini bosish orqali kiritishni bekor qilishlari mumkin, shunda result sifatida null olamiz.

prompt chaqiruvi kiritish maydoniga yozilgan matnni qaytaradi, agar kiritish bekor qilingan bo’lsa null ni.

Masalan:

let age = prompt('Yoshingiz nechida?', 100);

alert(`Siz ${age} yoshsiz!`); // Siz 100 yoshsiz!
IE da: har doim default ni taqdim eting

Ikkinchi parametr ixtiyoriy, ammo agar biz uni qo’shmasak, Internet Explorer prompt maydonsiga "undefined" matnini qo’yadi.

Ushbu kodni Internet Explorer da ko’rish uchun ishga tushiring:

let test = prompt("Test");

Shunday qilib, promptlar IE da yaxshi ko’rinishi uchun har doim ikkinchi parametrni kiritishni tavsiya etamiz:

let test = prompt("Test", ''); // <-- IE uchun

confirm

Sintaksis:

result = confirm(question);

confirm funktsiyasi savol va ikkita tugma bilan modal oyna ko’rsatadi: OK va Cancel.

Natija OK tugmasi bosilsa true bo’ladi, aks holda false bo’ladi.

Masalan:

let isBoss = confirm("Siz rahbarmisiz?");

alert( isBoss ); // true agar OK bosilgan bo'lsa

Xulosa

Biz tashrif buyuruvchilar bilan aloqa o’rnatish uchun uchta brauzerga xos funktsiyani ko’rib chiqdik:

alert
xabarni ko’rsatadi.
prompt
foydalanuvchidan matn kiritishni so’ragan xabarni ko’rsatadi. Matnni qaytaradi yoki Cancel tugmasi yoki Esc bosilsa null ni.
confirm
xabarni ko’rsatadi va foydalanuvchi “OK” yoki “Cancel” tugmasini bosishini kutadi. OK uchun true va Cancel/Esc uchun false ni qaytaradi.

Ushbu usullarning barchasi modal: ular skriptning bajarilishini to’xtatadi va oyna yopilmaguncha tashrif buyuruvchiga sahifaning qolgan qismi bilan ishlashga yo’l qo’ymaydi.

Yuqoridagi barcha usullar bo’yicha ikkita cheklov mavjud:

  1. Modal oynaning aniq joylashuvi brauzer tomonidan belgilanadi. Odatda, bu markazda.
  2. Oynaning aniq ko’rinishi ham brauzerga bog’liq. Biz uni o’zgartira olmaymiz.

Bu soddalik uchun to’lanadigan narx. Chiroyliroq oynalar va foydalanuvchi bilan boyroq o’zaro aloqa uchun boshqa usullar mavjud, ammo agar “qo’ng’iroqlar va hushtaklar” unchalik muhim bo’lmasa, bu usullar juda yaxshi ishlaydi.

Vazifalar

Ism so’raydigan va uni chiqaradigan veb-sahifa yarating.

Namoyishni ishga tushirish

JavaScript kod:

let name = prompt("Sening isming nima?", "");
alert(name);

To’liq sahifa:

<!DOCTYPE html>
<html>
  <body>
    <script>
      "use strict";

      let name = prompt("Sening isming nima?", "");
      alert(name);
    </script>
  </body>
</html>
O'quv qo'llanma xaritasi

Izohlar

izoh berishdan oldin buni o'qing…
  • Agar sizda nimani yaxshilash kerakligi haqida takliflaringiz bo'lsa - iltimos, GitHub muammosini yuboring yoki izoh berish o'rniga so'rov yuboring.
  • Agar siz maqolada biror narsani tushunolmasangiz - iltimos, batafsilroq ma'lumot bering.
  • Bir nechta so'z so'zlarini kiritish uchun <code> yorlig'ini ishlating, bir nechta satrlar uchun - ularni <pre> yorlig'i bilan o'rab qo'ying, 10 satrdan ortiq bo'lsa - sandbox (plnkr, jsbin, codepen…)