2013-03-18 84 views
0

我遇到问题。我有这个js函数:在js函数中嵌入Python无法正常工作

<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处理程序(我做了一些调试打印)。

为什么?

回答

2

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

如果您想一次执行多个提交,您需要自行序列化这些值并通过AJAX提交它们。

+0

我该如何编写ajax请求? – sharkbait 2013-03-18 14:10:41

+1

这不是我可以在评论中解释的。请阅读一些Ajax教程 - 您可能希望查看像jQuery这样的库,这很简单 - 然后再问一个问题,如果你仍然陷入困境。 – 2013-03-18 15:00:22