我的复选框传递值甚至未选中 - Grails

my checkbox pass value even unchecked - Grails

我的 Grails form 上有很多 checkbox 元素,其中一个是:

<g:checkBox id="consolidate" name="consolidate" value="${true}" checked="${false}" />

然后在接收 controller 时,我使用 code:

验证 checkbox 的值
println params?.consolidate

并显示:

on

不管我是否勾选了我的复选框。换句话说,如果复选框没有被勾选,它在控制器上的值将是 nullundefined。未选中时它的值应该是多少,在 grails 控制器上访问它的值的正确代码是什么?

临时解决方案:

以下代码(在 JavaScript 上)是我临时用来满足我的要求的代码。虽然我想要的是对这种行为的解释或更正。

var serialized_string = "";
$("#form input").each(function(i, j) {
    var o = $(j);
    if(o.val() !== undefined && o.val() !== "undefined" && o.val() !== "") {
        if(serialized_string === "") {
            serialized_string += o.attr("name") + "=";
        }
        else {
            if(o.attr("name") === "consolidate") {
                var val = "false";
                if(o.prop("checked")) {
                    val = "true";
                }
                data += val;
            }
            else {
                data += "&" + o.attr("name") + "=";
            }
        }
    }
});

如果选中,您会在 上看到;否则你会看到 null,这是你的 false.