复选框单击以触发POST路由

时间:2019-02-04 08:57:56

标签: javascript node.js bootstrap-4

我有一个nodejs / express应用程序,并且想使用复选框单击来触发POST路由,以便我可以通过是否检查相应元素来更新数据库。我在ejs视图中使用Bootstrap4复选框表单(请参见下面的代码)。我不想使用提交按钮或jQuery。我想用包含路线和动作的标签包装输入,但这不会触发路线。这可能吗?预先感谢。

<div class="form-check">
<input class="form-check-input" name="checked" type="checkbox" 
value="true"> 
</div>

3 个答案:

答案 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>&nbsp;Check me</label>

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