Задать вопрос
  • Как сделать счетчик checkbox, vue3?

    @artem111999000
    SEO
    Ваш код содержит несколько ошибок. Вот исправленная версия счетчика для чекбоксов:

    ```html
    <template>
      <div class="divRadio">
        <div class="divus" style="margin-top: 0px;">
          <input type="checkbox" id="name1" class="checkus" v-model="isChecked1" @change="schetRadio" />
          <label for="name1" class="labelus">Василенко Пётр Владимирович</label>
        </div>
        <div class="divus">
          <input type="checkbox" id="name2" class="checkus" v-model="isChecked2" @change="schetRadio" />
          <label for="name2" class="labelus">Ерёменко Владислав Игоревич</label>
        </div>
        <div class="divus">
          <input type="checkbox" id="name3" class="checkus" v-model="isChecked3" @change="schetRadio" />
          <label for="name3" class="labelus">Антонова Елена Сергеевна</label>
        </div>
      </div>
    </template>


    <script>
    export default {
      data() {
        return {
          isChecked1: false,
          isChecked2: false,
          isChecked3: false,
          schetchik: 0,
        };
      },
      methods: {
        schetRadio() {
          this.schetchik = 0;
          if (this.isChecked1) {
            this.schetchik++;
          }
          if (this.isChecked2) {
            this.schetchik++;
          }
          if (this.isChecked3) {
            this.schetchik++;
          }
          this.$emit('schetchik', this.schetchik);
        },
      },
    };
    </script>

    ```

    В этой версии я использовал директиву `v-model` для связывания значения каждого чекбокса с соответствующим свойством `isChecked1`, `isChecked2` и `isChecked3`. При изменении чекбоксов вызывается метод `schetRadio`, который пересчитывает значение `schetchik` в зависимости от состояния каждого чекбокса. Затем он эмитирует событие `schetchik` с обновленным значением.

    Обратите внимание, что я также добавил обнуление `schetchik` перед пересчетом, чтобы учесть случаи, когда пользователь сначала выбирает чекбокс, а затем снимает его. Это обеспечивает точное подсчетное значение.
    Ответ написан
    Комментировать
  • Как отловить отправку формы не только кнопкой?

    @artem111999000
    SEO
    Если вы хотите отловить отправку формы не только по нажатию кнопки, но и при нажатии клавиши Enter, вы можете использовать событие "submit" формы и проверить код клавиши события для определения, была ли нажата клавиша Enter. Вот пример кода на ванильном JavaScript:

    ```javascript
    document.addEventListener('DOMContentLoaded', function() {
    var form = document.getElementById('myForm'); // Замените 'myForm' на ID вашей формы

    form.addEventListener('submit', function(event) {
    event.preventDefault(); // Предотвращаем отправку формы по умолчанию

    // Выполняйте здесь вашу обработку данных формы перед отправкой

    // Пример обработки данных:
    var formData = new FormData(form);
    var data = {};

    for (var pair of formData.entries()) {
    data[pair[0]] = pair[1];
    }

    console.log(data); // Выводим данные формы в консоль (пример)

    // Отправляем данные на сервер (AJAX-запрос или другой метод)

    // Очищаем форму
    form.reset();
    });

    form.addEventListener('keydown', function(event) {
    if (event.key === 'Enter') {
    form.dispatchEvent(new Event('submit')); // Имитируем событие submit при нажатии клавиши Enter
    }
    });
    });
    ```

    В этом примере мы добавляем обработчик события "submit" на форму и предотвращаем ее отправку по умолчанию с помощью `event.preventDefault()`. Затем вы можете выполнять вашу обработку данных формы и отправлять данные на сервер. Также мы добавляем обработчик события "keydown" на форму, и если нажата клавиша Enter, мы вызываем событие "submit" формы.

    Примечание: Замените `'myForm'` в коде на ID вашей формы, которую вы хотите отслеживать.
    Ответ написан
    Комментировать
  • Как дополнить Python код телеграмм бота?

    @artem111999000
    SEO
    Для того чтобы кнопка "Назад" имела название "Назад" и отправляла сообщение "Компьютер", вам следует изменить обработчик этой кнопки. Вот пример, как это можно сделать:

    ```python
    @bot.message_handler(content_types=['text'])
    def handle_buttons(message):
    if message.text == 'Компьютер':
    keyboard_comp = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard_comp.add(telebot.types.KeyboardButton('Аппаратная часть'), telebot.types.KeyboardButton('Програмная часть'))
    keyboard_comp.add(telebot.types.KeyboardButton('Административная часть'), telebot.types.KeyboardButton('Назад'))
    bot.send_message(message.chat.id, "Выбрано: Компьютер", reply_markup=keyboard_comp)

    elif message.text == 'Аппаратная часть':
    keyboard_comp_hardware = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard_comp_hardware.add(telebot.types.KeyboardButton('Wi-Fi'), telebot.types.KeyboardButton('Ethernet'))
    keyboard_comp_hardware.add(telebot.types.KeyboardButton('Кнопка 3.2'), telebot.types.KeyboardButton('Назад'))
    bot.send_message(message.chat.id, "Выбрано: Аппаратная часть", reply_markup=keyboard_comp_hardware)

    elif message.text == 'Програмная часть':
    keyboard_comp_software = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard_comp_software.add(telebot.types.KeyboardButton('WSL'), telebot.types.KeyboardButton('QBittorrent'))
    keyboard_comp_software.add(telebot.types.KeyboardButton('QUIK'), telebot.types.KeyboardButton('Назад'))
    bot.send_message(message.chat.id, "Выбрано: Програмная часть", reply_markup=keyboard_comp_software)

    elif message.text == 'Административная часть':
    keyboard_comp_admin = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard_comp_admin.add(telebot.types.KeyboardButton('Выйти из сеанса'), telebot.types.KeyboardButton('Перезагрузить'))
    keyboard_comp_admin.add(telebot.types.KeyboardButton('Кнопка 3.3'), telebot.types.KeyboardButton('Назад'))
    bot.send_message(message.chat.id, "Выбрано: Административная часть", reply_markup=keyboard_comp_admin)

    elif message.text == 'Назад':
    keyboard_comp = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard_comp.add(telebot.types.KeyboardButton('Компьютер'))
    bot.send_message(message.chat.id, "Компьютер", reply_markup=keyboard_comp)
    ```

    В этом примере, если пользователь нажимает кнопку "Назад", будет отправлено сообщение "Компьютер", а также будет показана клавиатура с кнопкой "Компьютер". Вы можете адаптировать этот код для работы с другими разделами и кнопками в вашем телеграм-боте.
    Ответ написан
    Комментировать
  • Как увеличить высоту блока в Grid только на одной линии если один элемент больше либо равен другим?

    @artem111999000
    SEO
    В CSS Grid можно увеличить высоту блока только на одной линии, если один элемент больше или равен другим, используя свойство `grid-row-end`. Вы можете задать значение `span` для свойства `grid-row-end`, чтобы указать, сколько строк должен занимать элемент.

    Вот пример:

    HTML:
    ```html

    Элемент 1
    Элемент 2
    Элемент 3

    ```

    CSS:
    ```css
    .grid-container {
    display: grid;
    grid-template-columns: 1fr; /* Одинаковая ширина для всех элементов */
    grid-auto-rows: 50px; /* Высота строк */
    grid-gap: 10px; /* Промежуток между элементами */
    }

    .item {
    background-color: #ccc;
    padding: 10px;
    }

    .item:nth-child(2) {
    grid-row-end: span 2; /* Увеличиваем высоту на 2 строки */
    }
    ```

    В этом примере, второй элемент `.item:nth-child(2)` будет занимать две строки вместо одной, если он больше или равен другим элементам. Вы можете изменить значение `span` на количество строк, которое вам нужно.

    Обратите внимание, что это пример CSS Grid с фиксированной высотой строк. Если вам нужно динамически изменять высоту строк в зависимости от содержимого, вам может потребоваться использовать JavaScript или другие CSS-свойства, такие как `grid-template-rows: auto` или `grid-template-rows: minmax(min-content, max-content)`.
    Ответ написан
    Комментировать