我目前正在为我正在运行的项目编写 ToDo 脚本。
现在,某些浏览器(例如 Firefox)有一些(在这种情况下)烦人的行为,它们会记住以前的表单数据。这个功能确实很方便,但如果您编写依赖于复选框的 ToDo 脚本,那就很烦人了。
我的问题是,浏览器会记住表单数据并将选中状态设置为上次的状态。这可能不准确(例如,当多人同时编辑并且简单的刷新无法完成这项工作时)。
有没有办法通过从 django 模板获得的 html 属性“checked”来设置实际的选中状态?
这是我在 django 模板中所做的事情:
{% for t in todos %}
<div class='todo_div'>
{% if t.is_done %}
<input type='checkbox' name='{{ t.pk }}' class='todo_checkbox' value='{{ t.pk }}' checked='true' />
{% else %}
<input type='checkbox' name='{{ t.pk }}' class='todo_checkbox' value='{{ t.pk }}'/>
{% endif %}
{{ t.text }}
</div>
{% endfor %}
最佳答案
您可以使用
autocomplete="off"
您输入的属性,但这不可靠。
最好的方法是随机化表单输入名称。每次呈现表单时,您都可以生成一个随机字符串,例如“klsdjhfsdf”。然后,像这样命名您的输入:
<input name="klsdjhfsdf-MyRealInputName" ...>
服务器端解析接收到的输入并查看第一个连字符之后的所有内容以获取输入名称。
关于javascript - 如何强制每个浏览器将表单数据设置为其实际值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889066/