我有一个nodejs / express应用程序,并且想使用复选框单击来触发POST路由,以便我可以通过是否检查相应元素来更新数据库。我在ejs视图中使用Bootstrap4复选框表单(请参见下面的代码)。我不想使用提交按钮或jQuery。我想用包含路线和动作的标签包装输入,但这不会触发路线。这可能吗?预先感谢。
<div class="form-check">
<input class="form-check-input" name="checked" type="checkbox"
value="true">
</div>
答案 0 :(得分:0)
只需在输入元素上使用java MyClass
事件。
Cannot find bank.in...
Exiting the program...
public void main(String[] args)
{
String fileName = "bank.in";
FileReader bank = null;
BufferedReader bankBuffered = null;
try
{
bank = new FileReader(fileName);
bankBuffered = new BufferedReader(bank);
}
catch(FileNotFoundException f)
{
System.out.printf("%s is not found.%n%n", fileName);
System.out.printf("Exiting the program...%n");
System.exit(0);
}
}
或者,如果您使用的是jQuery,请查看以下答案:how to send a post request on checkbox check/uncheck event
答案 1 :(得分:0)
您可以将复选框包装在表单标签中,并添加onClick事件处理程序以提交表单,如下所示:
<form method="POST" action="/">
<input class="form-check-input" name="checked" type="checkbox" value="true" onChange="this.form.submit()">
</form>
使用操作指定服务器端点
但是请记住,每次提交表单时都会重新加载页面。如果您不希望出现这种行为,则必须使用Ajax。但这超出了这个问题的范围。
答案 2 :(得分:0)
看到您正在使用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
})
}
})