0

我有个问题。我有这个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>

当我单击一个按钮时,我调用此函数,对于用户列表中的每个用户,设置为检查相关权限的用户单选按钮,然后提交用户表单以在数据库中设置权限(这调用一个处理程序在 Python 中)。

现在,设置为检查单选按钮的代码可以正常工作。但是只提交列表中第一个用户的表单...该功能仅对第一个用户设置权限。此外,Python 处理程序只被调用一次(我做了一些调试打印)。

为什么?

4

1 回答 1

2

调用submit()表单的动作与您自己按下按钮完全相同:整个页面将使用来自服务器的响应(通常是重定向)进行刷新,因此不会处理更多的 JS 动作。

You'll need to serialize the values yourself and submit them via AJAX if you want to do multiple submissions at once.

于 2013-03-18T12:35:07.000 回答