Как отключить кнопку отправки после клика

В настоящее время я работаю над расширением, в котором у меня есть кнопка отправки и ввод. Когда пользователь нажимает кнопку отправки, пользователь не должен больше нажимать кнопку отправки и должен быть отключен, а если пользователь уже ввел идентификатор пользователя, он также не сможет снова нажать кнопку отправки.

Как я могу отключить кнопку отправки, когда пользователь щелкнул ее или уже щелкнул, прежде чем использовать мой код ниже?

всплывающее окно.js

function get_discord_id(callback) {
    chrome.storage.sync.get(["discord_id"], (result) => {
        callback(result.discord_id);
    });
}

function set_discord_id(discord_id) {
    chrome.storage.sync.set({ discord_id: discord_id }, () => {});
}

window.addEventListener("DOMContentLoaded", () => {
    // console.info(`Testing: ${input.placeholder}`)
    // check if discord ID is already stored
    get_discord_id((discord_id) => {
        console.info(`Console test:`);
        if (discord_id != null) {
            let input = document.getElementById("discord-id-input");
            input.value = "";
            input.placeholder = discord_id;
        }
    });

    document.getElementById("discord-id-button").addEventListener("click", () => {
        let input = document.getElementById("discord-id-input");
        let value = input.value;
        input.value = "";
        input.placeholder = value;

        chrome.runtime.sendMessage({ discord_id: value }, function(response) {
            // console.info(response.discord_id);
        });

        set_discord_id(value);
        e.target.disabled = "true";
    });
});

HTML

<!DOCTYPE html>

<head>
    <link rel = "stylesheet" href = "../css/style.css">
    <script src = "../js/popup.js"></script>
</head>

<body>
    <div class = "text-center">
        <div class = "form-control mt10">
            <input type = "text" id = "discord-id-input" name = "discord-id-input" placeholder = "Discord ID">
            <button id = "discord-id-button" type = "submit" class = "submit"></button>
            <a class = "help-text">ENTER DISCORD USER ID AND SUBMIT</a>
        </div>
    </div>
</body>

CSS

#discord-id-button {
    box-shadow: 0 0 10px 0 #251431;
    border-radius: 8px;
    transition: 0.3s;
}

#discord-id-button:hover {
    box-shadow: 0 0 10px 6px #251431;
}

#discord-id-input {
    box-shadow: 0 2px 1px 0 #251431;
    border-radius: 8px;
}

body {
    background-image: url('../images/bg2.jpg');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 250px;
    padding: 5px 15px 30px 15px;
    width: 500px;
}

.text-center {
    text-align: center;
}

*:focus {
    outline: none;
}

.form-control {
    align-items: center;
    display: flex;
    justify-content: center;
}

label {
    display: block;
}

select,
input {
    background: #582e79;
    border-radius: 8px;
    border: 1px #582e79;
    color: #999;
    margin-left: 60px;
    margin-top: 135px;
    padding: 5px 10px;
    text-align: center;
    width: 150px;
}

.mt10 {
    margin-top: 20px;
}

.submit {
    background-color: transparent;
    background-image: url("../images/arrow.png");
    background-position: center center;
    background-repeat: no-repeat;
    border: none;
    height: 15px;
    width: 50px;
    margin-left: 15px;
    margin-top: 135px;
    outline: none;
    padding-bottom: 25px;
}

.help-text {
    position: fixed;
    color: #FFFF;
    font-size: 9px;
    color: #999;
    margin-top: 190px;
}

Отвечает ли это на ваш вопрос? Как отключить кнопку HTML с помощью JavaScript?

Robert Harvey 19.03.2022 15:59

Привет, Роберт, вопрос действительно сказал мне, каков синтаксис для его использования, но я не знаю, где его разместить, а также проверить, имеет ли он уже установленное значение.

ProtractorNewbie 19.03.2022 16:05

Затем включите эту информацию в свой вопрос.

Robert Harvey 19.03.2022 16:06

Я упомянул об этом, что мне интересно, как я могу это сделать? Я включу, что это должно быть в моем коде :)

ProtractorNewbie 19.03.2022 16:24

вы добавили onclick = "this.disabled=true" в html. вы пытались обернуть true` внутри одинарной кавычки, например onclick = "this.disabled='true'"

Sheikh Haziq 19.03.2022 19:08

Я также только что протестировал с одинарными кавычками и без них, а также попытался обойтись без этой функции. Тот же результат :(

ProtractorNewbie 19.03.2022 19:09
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
76
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ты можешь использовать

document.getElementById('button').disabled = "true";

Привет! хм, куда мне это поместить?

ProtractorNewbie 19.03.2022 16:03

Добавьте прослушиватель событий отправки в форму и добавьте это внутри него.

Sheikh Haziq 19.03.2022 16:09

Но я уже сделал, не так ли?

ProtractorNewbie 19.03.2022 16:23

Я создал скрипку. Проверьте это jsfiddle.net/gc3v45dx

Sheikh Haziq 19.03.2022 16:38

вы также можете достичь, используя onclick = "this.disabled='true'"

Sheikh Haziq 19.03.2022 16:40

не забудьте использовать одинарную кавычку вокруг true

Sheikh Haziq 19.03.2022 16:41

Только что проверил ваш пример с моим кодом, и похоже, что он не отключает его

ProtractorNewbie 19.03.2022 18:55

Ну на моем устройстве работает нормально.

Sheikh Haziq 19.03.2022 18:56

Смотрите видео здесь :) gyazo.com/cf71d0d937b2d8b7dbc4f529ac9f2490 - и я использовал оба ваших примера.

ProtractorNewbie 19.03.2022 18:57

добавьте скриншот вашего кода тоже

Sheikh Haziq 19.03.2022 19:01

Я отредактировал код в теме -> См. popup.js :)

ProtractorNewbie 19.03.2022 19:05

Если вам нужен дополнительный стиль для отключенной кнопки, вы можете сделать это:

  • добавьте два класса к вашей html-кнопке: enable и disabled. Затем при щелчке замените класс «отключен» на класс «включен» и удалите прослушиватель событий.

Если вы просто хотите отключить его, игнорируйте часть с классами и просто отключите его по щелчку.

Простая рабочий пример:

const button = document.querySelector("button");
const classes = button.classList;

button.addEventListener('click', handleClick)


function handleClick() {
  //classes.replace('enabled', 'disabled');
  button.disabled = true;
  button.removeEventListener('click', handleClick)
}
.disabled {
  background: #ccc;
}
<button class = "enabled"> submit</button>

Другие вопросы по теме