如何在保持权限的同时 disable/enable 输入 empty/full 上的按钮

How to disable/enable a button on input empty/full while keeping permissions

所以我知道如何在相同形式的输入 empty/filled 时 disable/enable 一个按钮。

但是假设我先应用了后端权限并禁用了一些按钮。当没有权限的人在输入中写入时,如何确保它们不会重新启用?

理论上我也可以根据许可禁用所有输入,但你能提出更好的解决方案吗?

django 模板中的示例:

    <button type="submit" class="btn btn-default" id="my_button"
            {% if not can_post %}disabled{% endif %}>Apply
    </button>

您可以通过多种方式执行此操作,具体取决于您的项目设置。

如果你做的是没有扩展形式 UI 修改的轻型 javascript,你可以简单地将 data attribute 放入定义初始值的按钮 data-has-perm=0权限,然后在您的启用脚本中,只需在 re-enable 按钮之前添加对该权限的检查。

但是,如果您进行大量 UI 修改,我想最好的方法是为所有按钮创建状态对象,例如:

var buttons = {
    '#b1': {'initPerm': 0},
    // in your templates file simply do '#b1': {'initPerm': {% if not can_post %}0{% else %}1{% endif %}' 
}  

您将拥有一个包含所有预定义按钮状态的对象,然后您可以在 re-enabling 方法中检查它。

在这两种情况下,永远不要忘记检查提交的表单对您的视图或表单的用户权限。