【问题标题】:Python inline in a js function doesn't works finejs函数中的Python内联不能正常工作
【发布时间】:2013-03-06 19:02:52
【问题描述】:

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

为什么?

【问题讨论】:

    标签: javascript python forms radio-button tornado


    【解决方案1】:

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

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

    【讨论】:

    • 怎么写ajax请求?
    • 这不是我可以在评论中解释的。请阅读一些 Ajax 教程——你可能想研究一个像 jQuery 这样的库,它使它变得非常简单——然后如果你仍然卡住,请再问一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多