【发布时间】:2016-04-17 19:53:32
【问题描述】:
使用 Web2Py 我构建了一些复选框,它们看起来都类似于这个:
<input type="checkbox" value="some_value" onchange="ajax('/app/controller/function/args', ['the_name'])" name="the_name" id="some_id" class="boolean">
他们应该在改变时提交他们的价值,他们这样做了。当我print request.vars:
<Storage {'the_name': some_value}>
但仅当它们被检查或激活时。
另一种方式,当它们被取消选中或停用时,ajax 调用完成,但没有提交数据。再次print request.vars:
<Storage {}>
为什么这只能“单向”工作?
编辑:
使用默认值value="on" 时行为保持不变。要指定我在做什么:我有许多隐藏的复选框,在单击按钮时会被选中/取消选中。当复选框未隐藏并直接单击时,行为不会改变 - 提交激活数据,不提交任何停用数据。
这是我使用的 JS。
$(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');
}
});
});
【问题讨论】:
标签: javascript jquery python ajax web2py