Нажатие на кнопку в JavaScript (событие и функции)

  Александр Маврин   10 комментариев

Клик по кнопке JS

Привет всем любителя программирования. Это довольно простой урок по такому событию в JavaScript, как нажатие на кнопку. не смотря на то, что это базовые вещи в JS, реализовать нажатие на кнопку можно разными способами. Давайте предположим, что у нас на странице есть некая кнопка.

<button type="submit" id="submit">Нажми меня</button>

Она пока никак не реагирует потому, что мы не повесили на нее никакого события. И давайте рассмотрим первый вариант.

1
2
3
document.querySelector("#submit").onclick = function(){
  alert("Вы нажали на кнопку");
}

Демо

Функция по нажатию кнопки в JavaScript

Событие по клику на кнопку мы создали, но можно сделать то же самое, только напишем функцию, с именем.

1
2
3
function alerted(){
  alert("Вы нажали на кнопку");
}

А к кнопке добавим эту функцию:

<button type="submit" id="submit" onclick="alerted();">Нажми меня</button>

Демо

Вывод на страницу по клику на кнопку в JS

Соответственно по нажатию на кнопку в JavaScript можно делать не только всплывающий alert, но и все, что угодно, передавать данные на сервер, изменять элементы на странице, удалять, копировать и много чего еще. Давайте рассмотрим еще один пример. напишем небольшую функцию, которая будет срабатывать по клику и выводить на страницу случайное число. Для этого под кнопкой добавим элемент DIV с классом sum, в котором будем выводить результат работы JavaScript функции.

<div class="sum"></div>

И сама функция:

1
2
3
function randomSum(min, max) {
  document.querySelector('.sum').innerHTML = (Math.floor(Math.random() * (max - min + 1) ) + min);
}

Для кнопки добавим эту функцию по нажатию:

<button type="submit" id="submit" onclick="randomSum(1000, 9999);">Нажми меня</button>

По нажатию на кнопку под ней будет выведено четырехзначное число от 1000 до 9999 в случайном порядке. Это мы указали в специальных параметрах min и max.

Демо

Нажатие правой кнопкой мыши в JS

Событие клика правой кнопкой мыши в JavaScript отличается от левой и по умолчанию вызывает стандартное контекстное меню браузера. Но мы его можем изменить. Во-первых убрать, а во-вторых задать свое действие.

Запрещаем вывод контекстного меню при клике правой кнопкой мыши:

1
<button type="submit" id="submit" oncontextmenu="return false">Нажми меня</button>

Выводим Alert:

1
2
3
4
document.querySelector("#submit").oncontextmenu = function(){
  alert("Вы нажали на кнопку");
  return false
}

Демо

Это простейший вызов функции по клику в JavaScript и усваивается без особых трудностей. В дальнейшем рекомендую изучать более сложные функции, которые делают различные операции. Например считают сумму, как в калькуляторе расчета стоимости. Надеюсь этот урок оказался для вас полезным. Если остались вопросы, вы всегда можете задать их в комментариях.

Добавить страницу в закладки

10 комментариев
  1. Как всегда интересно и доступно. Намедни, писал калькулятор расчёта цены металлической решётки на JS и пытался вызвать срабатывание двух фуекций одновременно по нажатию кнопки. Запускались два массива радиокнопок с разными именами и дальше использовались для расчётов. Не получилось и даже пишут, что это не возможно.
    Интересует ваше мнение вызова нескольких функций по нажатию только одной кнопки.

    • Александр Маврин:

      Проблем с запуском 2-х функций в JS возникать не должно. Просто эти функции нужно написать отдельно. Возможно у вас какой-то конфликт в коде.

      • Имеется в виду есть 2 групы или более радио кнопок с возможностью выбора только одной кнопки в каждой группе по параметру value. Хотелось бы написать один код, в котором поставив чекбоксы в радио кнопках использовать их значениня value в этом коде дальше по нажатию кнопки РАССЧИТАТЬ. Каждая группа кнопок перебирается в цикле и определяется значение value одной и второй группы. На самом деле, записав оба цикла последовательно в коде не удаётся далье воспользоваться полученными значениями велью. Если радио кнопки не зависимые, тогда всё в порядке, а если с одним именем не получается.

  2. Всплывает модальное окно подписки и зависает. Дальше не реагирует.

  3. Денис:

    Доброго времени суток! а как быть в случае когда надо на одной странице несколько раз выполнить одинаковый код обновление div-а с помощью Ajax?
    Пример: есть страница строки/столбцы. В одном из столбцов (для каждой строки) есть номер и ттн. По нажатию на кнопку происходит отправка данных. php возвращает некий ответ. Этот ответ отображается в div под кнопкой отправки. Но такая конструкция срабатывает только один раз для первого элемента

    $.ajax({
    type: «POST»,
    url: url,
    data: form.serialize(),
    success: function(html){
    $(»).html(html);}});
    return false;
    });

    • Александр Маврин:

      Вам скорее всего нужен формат Json. Об этот я писал здесь.

      • Денис:

        Данные отправляются через эту конструкцию нормально. php тоже отрабатывает возвращая нужную строку. После в строке success результат от php присваивается некому div-у на странице. Но если это код повторить несколько раз на одной странице то все, которые ниже уже не работают (я так понимаю, что это из за уникальности id-шников)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *