Тема: Прошу допомоги, навчаюсь +_)

Зіткнувся як я розумію з банальною проблемою, не знаю як правильно записати, підсажіть.
Проблема в тому, що алерт випадає в будь-якому випадку якщо був введений текст, якщо не ввели то випаде алерт який каже про помилку. Потрібно щоб алерт виграшу випадва тільки на правиль нувідповідь.

    var ans = prompt("Через воду він проводить,А сам з місця вік не сходить.");
    var opt = ["Міст","міст"];
            for (i=0;i < opt.length; i++) {
            if (opt[i]=ans) {
            alert("Вітаю, з перемогою!" + ans + " " + "Дійсно вірна відповідь." ); break;
            } else {
            alert("Прикра помилка");break;
            }
        }
    

2

Re: Прошу допомоги, навчаюсь +_)

valentinushych написав:

Зіткнувся як я розумію з банальною проблемою, не знаю як правильно записати, підсажіть.
Проблема в тому, що алерт випадає в будь-якому випадку якщо був введений текст, якщо не ввели то випаде алерт який каже про помилку. Потрібно щоб алерт виграшу випадва тільки на правиль нувідповідь.

    var ans = prompt("Через воду він проводить,А сам з місця вік не сходить.");
    var opt = ["Міст","міст"];
            for (i=0;i < opt.length; i++) {
            if (opt[i]=ans) {
            alert("Вітаю, з перемогою!" + ans + " " + "Дійсно вірна відповідь." ); break;
            } else {
            alert("Прикра помилка");break;
            }
        }
    

тут

 opt[i]=ans

  у Вас присвоєння.
а потрібно порівння

opt[i]==ans
Подякували: FakiNyan, 0xDADA11C72

3

Re: Прошу допомоги, навчаюсь +_)

убери break щонайменше з else. Але спочатку зрозумій чому

Подякували: 0xDADA11C71

4

Re: Прошу допомоги, навчаюсь +_)

0. Не плутайте = і ==.
1. Ще раз продумайте алгоритм. Уявіть собі, що правильних відповідей 200. Вам точно треба alert в циклі робити, а не після нього?

Подякували: 0xDADA11C7, leofun01, varkon3

5

Re: Прошу допомоги, навчаюсь +_)

і так, ping теж правий, не замітив

6

Re: Прошу допомоги, навчаюсь +_)

Kniy написав:

убери break щонайменше з else. Але спочатку зрозумій чому

а де дякую мені? чи я неправий?
всюди несправедливість!!)

Подякували: 0xDADA11C71

7

Re: Прошу допомоги, навчаюсь +_)

не спец по js але так краще, здається:

    var ans = prompt("Через воду він проводить,А сам з місця вік не сходить.");
    var opt = ["Міст","міст"];
 
    if (opt.includes(ans)) {
      alert("Вітаю, з перемогою!" + ans + " " + "Дійсно вірна відповідь." );
    }
    else {
            alert("Прикра помилка");
    }
Подякували: 0xDADA11C7, koala, 221VOLT, leofun014

8

Re: Прошу допомоги, навчаюсь +_)

Дякую, дуже сильно =_)

Подякували: 0xDADA11C7, Monolith2

9

Re: Прошу допомоги, навчаюсь +_)

Припустимо, у мене є одне поле для вводу паролю. Як зробити так, щоб, нажимаючи на клавішу enter, викликалась певна функція?Який івент застосувати?

  
<intput type="password" id="ps" />

10

Re: Прошу допомоги, навчаюсь +_)

Обгорніть в формочку і onsubmit Event

Подякували: leofun011

11

Re: Прошу допомоги, навчаюсь +_)

Yidak_Ihor написав:

Припустимо, у мене є одне поле для вводу паролю. Як зробити так, щоб, нажимаючи на клавішу enter, викликалась певна функція?Який івент застосувати?

  
<intput type="password" id="ps" />

http://keycode.info/

Це ще не кінець. Це навіть не початок кінця. Але, можливо, це кінець початку.
Зростання мудрості можна точно вимірювати ступенем зменшення злоби.

12

Re: Прошу допомоги, навчаюсь +_)

fed_lviv написав:

Обгорніть в формочку і onsubmit Event

хто вам сказав що там post запит юзатимуть?
можливо йде мова про вебсокет

Це ще не кінець. Це навіть не початок кінця. Але, можливо, це кінець початку.
Зростання мудрості можна точно вимірювати ступенем зменшення злоби.
Подякували: Yidak_Ihor1

13 Востаннє редагувалося fed_lviv (02.12.2017 22:44:07)

Re: Прошу допомоги, навчаюсь +_)

221VOLT написав:

хто вам сказав що там post запит юзатимуть?
можливо йде мова про вебсокет

Можливо і про вебсокет, я звідкіля знаю? :)

Yidak_Ihor написав:

Як зробити так, щоб, нажимаючи на клавішу enter, викликалась певна функція?Який івент застосувати?

Що заважає в обробнику викликати:

evt.preventDefault();

і далі, що хоч той роби.
Звичайно можна реагувати на натискання конкретної клавіши, все залежить, що саме хоче реалізовувати Yidak_Ihor

Подякували: 221VOLT, leofun01, Yidak_Ihor3

14

Re: Прошу допомоги, навчаюсь +_)

А як зробити так, щоб функція викликалась тільки після натискання конкретної клавіші(For example: enter)?

15

Re: Прошу допомоги, навчаюсь +_)

Yidak_Ihor написав:

А як зробити так, щоб функція викликалась тільки після натискання конкретної клавіші(For example: enter)?

порівнювати код натиснутої клавіші
якщо код співпадає з кодом очікуваної клавіші - викликаємо функцію

Це ще не кінець. Це навіть не початок кінця. Але, можливо, це кінець початку.
Зростання мудрості можна точно вимірювати ступенем зменшення злоби.
Подякували: Monolith1

16

Re: Прошу допомоги, навчаюсь +_)

Yidak_Ihor написав:

А як зробити так, щоб функція викликалась тільки після натискання конкретної клавіші(For example: enter)?

window.onkeypress = function(event) {
    var key_code = event.keyCode;
    if ( key_code == 13 ) {
        console.log( 'Ви натиснули клавішу Enter!' );
    }
}
Подякували: leofun01, 221VOLT2

17

Re: Прошу допомоги, навчаюсь +_)

Yidak_Ihor написав:

А як зробити так, щоб функція викликалась тільки після натискання конкретної клавіші(For example: enter)?

https://codepen.io/anon/pen/ooKKOd?editors=1111

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...
Подякували: Monolith, 221VOLT2

18

Re: Прошу допомоги, навчаюсь +_)

Monolith написав:
Yidak_Ihor написав:

А як зробити так, щоб функція викликалась тільки після натискання конкретної клавіші(For example: enter)?

window.onkeypress = function(event) {
    var key_code = event.keyCode;
    if ( key_code == 13 ) {
        console.log( 'Ви натиснули клавішу Enter!' );
    }
}

якщо ентер при вводі тексту в input id="your_input"

document.getElementById("your_input").addEventListener("keypress", function(e){    
  if(e.keyCode == 13){
    console.log( 'Ви натиснули клавішу Enter!' );
  }
});
Це ще не кінець. Це навіть не початок кінця. Але, можливо, це кінець початку.
Зростання мудрості можна точно вимірювати ступенем зменшення злоби.