如何从HTML格式的复选框中获取所有值并将其归因于字段

时间:2015-05-12 01:15:48

标签: spring spring-mvc checkbox thymeleaf

我正在尝试使用spring + thymeleaf创建一个新用户。

我的模特就是这样:

class Person {
    String name;
    int preferences;
}

class Preferences {
    public static final int no_preferences_checked = 0;
    public static final int receive_newsletter = 1;
    public static final int receive_notification_of_new_jobs = 2;
    public static final int show_email_to_everyone = 4;
    public static final int show_skype_to_everyone = 8;
}

在HTML表单中,将向用户显示4个复选框(上面的Preferences类中每个可能的值一个。

Person类的首选项字段是用户显式检查的复选框值的总和。

比方说,例如,如果用户同时选中了receive_newsletter和show_email_to_everyone,则首选项字段必须为5。

编辑:我想我不清楚我的问题。让我重新说一下:

我不知道如何编写HTML表单,以便 Spring将自动创建Person类,并在负责接收帖子的方法中填写所有数据。

当没有涉及复选框时,很容易得到Spring生成的模型(我遵循这个tutorial并且一切正常)但是一旦我开始使用复选框,它就不再适用于我了。字段偏好永远不会被填满。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为,有一种方法可以实现这种特殊情况,你需要在/中使用javascript。

我的建议:

创建一个javascript文件,在这个文件中你有一个checkbox监听器

$(':checkbox').change(function() {
    var sum = 0;
    // Your Code
    $('#preferences').val(sum);
});

在此方法中,您可以选中选中的复选框,并阅读选中复选框的值。计算这些值并将计数值分配给preferences输入。 可以隐藏此输入。