Установите флажок, чтобы активировать маршрут POST

У меня есть приложение nodejs/express, и я хотел бы использовать щелчок флажка для запуска маршрута POST, чтобы я мог обновить свою базу данных, указав, проверен ли соответствующий элемент или нет. Я использую форму флажка Bootstrap4 (см. код ниже) в представлении ejs. Я не хочу использовать кнопку отправки или jquery. Я подумал о том, чтобы обернуть ввод тегами, содержащими маршрут и действие, но это не запускает маршрут. Возможно ли это? Заранее спасибо.

<div class = "form-check">
<input class = "form-check-input" name = "checked" type = "checkbox" 
value = "true"> 
</div>
Поведение ключевого слова "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) для оценки ваших знаний,...
1
0
1 136
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Просто используйте событие onClick для элемента ввода.

function task(e)
{
  
  if (e.target.checked)
  {
    ///do post request with 1 in parameter
    console.info("do post request with 1 in parameter");
  }
  else
  {
    ///do post request with 0 parameter
    console.info("do post request with 0 parameter");
  }
}
<input type = "checkbox" onclick = "task(event);"/>

Или, если вы используете jQuery, посмотрите этот ответ: как отправить запрос на публикацию в событии установки/снятия флажка

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

Вы можете обернуть свой флажок в тег формы и добавить обработчик события onClick для отправки формы, как показано ниже:

<form method = "POST" action = "/">
    <input class = "form-check-input" name = "checked" type = "checkbox" value = "true" onChange = "this.form.submit()">
</form>

используйте действие для указания конечной точки сервера

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

Хорошее простое решение. Спасибо!

dougfair 04.02.2019 10:36

Поскольку вы используете Bootstrap, вы можете использовать обработчик событий jQuery change() для запуска публикации.

<label><input id = "form-check-input" type = "checkbox" checked>&nbsp;Check me</label>

$('#form-check-input').change(function() {
  if ($(this).prop('checked')) {
    $.post(ajax_url, function(data) {
      // success handler
    })
  }
})

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