У меня есть приложение nodejs/express, и я хотел бы использовать щелчок флажка для запуска маршрута POST, чтобы я мог обновить свою базу данных, указав, проверен ли соответствующий элемент или нет. Я использую форму флажка Bootstrap4 (см. код ниже) в представлении ejs. Я не хочу использовать кнопку отправки или jquery. Я подумал о том, чтобы обернуть ввод тегами, содержащими маршрут и действие, но это не запускает маршрут. Возможно ли это? Заранее спасибо.
<div class = "form-check">
<input class = "form-check-input" name = "checked" type = "checkbox"
value = "true">
</div>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Просто используйте событие 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. но это выходит за рамки этого вопроса.
Поскольку вы используете Bootstrap, вы можете использовать обработчик событий jQuery change() для запуска публикации.
<label><input id = "form-check-input" type = "checkbox" checked> Check me</label>
$('#form-check-input').change(function() {
if ($(this).prop('checked')) {
$.post(ajax_url, function(data) {
// success handler
})
}
})
Хорошее простое решение. Спасибо!