我有问题。我有这个js函数:
<script>
function checkall(perm){
var permall = parseInt(perm);
if (permall==0) {
{% for user in users %}
document.getElementById("perms_{{user.id}}_0").checked=true
document.forms['form_user_{{ user.id }}'].submit();
{% end %}}
else if (permall==1) {
{% for user in users %}
document.getElementById("perms_{{user.id}}_1").checked=true
document.forms['form_user_{{ user.id }}'].submit();
{% end %}}
else if (permall==4) {
{% for user in users %}
document.getElementById("perms_{{user.id}}_4").checked=true
document.forms['form_user_{{ user.id }}'].submit();
{% end %}}
}
</script>
当我点击一个按钮时,我调用此功能,对于用户列表中的每个用户,设置为检查相对权限的用户单选按钮,然后提交用户表单以在DB中设置权限(这在Python中调用处理程序。)
现在,设置为检查单选按钮的代码工作正常。但只提交列表中第一个用户的表单...该功能仅将权限设置给第一个用户。另外,Python处理程序只被调用一次(我做了一些调试打印)。
为什么?
答案 0 :(得分:2)
调用表单的submit()
操作与您自己按下按钮完全相同:整个页面将使用服务器的响应进行刷新(通常是重定向),因此不再需要JS行动将被处理。
如果您想一次进行多次提交,您需要自己序列化值并通过AJAX提交。