У меня есть много checkbox
элемента на моем Grails form
, один такой:моего флажок значения пропуска даже бесконтрольно - Grails
<g:checkBox id="consolidate" name="consolidate" value="${true}" checked="${false}" />
Тогда на приемный controller
, я проверяю значение checkbox
с помощью этого code
:
println params?.consolidate
И это показывает:
on
Независимо от того, отмечен ли я галочкой или нет. На другом языке, если флажок не отмечен, его значение на контроллере будет null
или undefined
. Какая должна быть его ценность при снятии флажка, и каков правильный код для доступа к его значению на контроллере 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") + "=";
}
}
}
});
Каков источник снятого флажка? Подскажите, что ваша проблема имеет какое-то отношение к 'checked =" $ {false} "' –
@joshua. Я также пробовал без тега 'checked', но он все еще не работает. – Gideon
потому что значение флажка истинно. – user1690588