在js函数中的Python内联不能正常工作

时间:2013-03-18 12:29:21

标签: javascript python forms radio-button tornado

我有问题。我有这个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处理程序只被调用一次(我做了一些调试打印)。

为什么?

1 个答案:

答案 0 :(得分:2)

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

如果您想一次进行多次提交,您需要自己序列化值并通过AJAX提交。