Mit web2py ich einige Kontrollkästchen gebaut, sie sehen alle ähnlich wie diese:Warum Checkbox keine Daten an Onchange einreichen, wenn nicht markiert sein
<input type="checkbox" value="some_value" onchange="ajax('/app/controller/function/args', ['the_name'])" name="the_name" id="some_id" class="boolean">
Sie sollen ihren Wert auf Änderung vorzulegen, was sie tun. Als ich print request.vars
:
<Storage {'the_name': some_value}>
aber nur, wenn sie geprüft oder aktiviert werden.
Die andere Möglichkeit, wenn sie deaktiviert oder deaktiviert sind, ist der Ajax-Aufruf, aber keine Daten gesendet. Wieder print request.vars
:
<Storage {}>
Warum ist das einzige funktionierende 'one-way'?
Edit:
Das Verhalten bleibt gleich, wenn value="on"
den Standardwert verwenden. Um zu spezifizieren, was ich mache: Ich habe eine Anzahl von versteckten Checkoxen, die bei Button-Klicks aktiviert/deaktiviert werden. Wenn die Kontrollkästchen nicht ausgeblendet sind und nicht direkt angeklickt werden, ändert sich das Verhalten nicht - Daten werden bei der Aktivierung übermittelt und keine Deaktivierungsdaten übermittelt. Hier ist der JS, den ich benutze.
$(function() {
return $('.btn-trigger').click(function() {
var btn, checkbox;
btn = $(this);
checkbox = btn.next();
if (checkbox.attr('checked')) {
checkbox.val('false');
checkbox.removeAttr('checked').prop('checked', false);
checkbox.trigger('change');
return btn.removeClass('btn-success').addClass('btn-danger');
} else {
checkbox.val('true');
checkbox.attr('checked', 'checked').prop('checked', true);
checkbox.trigger('change');
return btn.removeClass('btn-danger').addClass('btn-success');
}
});
});