我有一个页面,动态添加文本框,并在动态添加的文本框中,我想访问相关的上下文变量。 为此,我需要使用JavaScript代码/模板代码中的'i'变量来引用上下文中的值。 这里是我的javascript代码,我需要用 '我' 作为一个上下文列表索引:Django引用Javascript变量在服务器端模板代码
<script>
var i = 2
function add_field()
{
var table = document.getElementById("tbl_location").getElementsByTagName('tbody')[0];
var input_name = document.createElement("th")
input_name.appendChild(document.createTextNode("S/N " + i))
var input_tb = document.createElement("td")
var input = document.createElement('input');
input.setAttribute("name", "sn" + i);
{% if curr_sn.i %}
input.setAttribute("value", {{ curr_sn.i }});
{% endif %}
input_tb.appendChild(input)
var input_row = document.createElement("tr")
input_row.appendChild(input_name)
input_row.appendChild(input_tb)
table.appendChild(input_row);
i++;
}
的具体线路是:
{% if curr_sn.i %}
input.setAttribute("value", {{ curr_sn.i }});
{% endif %}
其中 'i' 是一个javascript veriable,而curr_sn是python代码给出的上下文列表。
HTML部分,我需要用“我”:
{% for i in max_board_list %}
{% if curr_sn.i %}
<tr>
<th>S/N {{ i }}</th>
<td><input type="text" name="sn{{ i }}" value="{{ curr_sn.i }}"></td>
</tr>
{% endif %}
{% endfor %}
这里“我”是由产生的for循环,但我仍然需要访问相同的列表。
我该如何在两部分代码中做到这一点?所有我可以找到相反的方式已经适用于我(在JavaScript代码中使用Django模板)。
感谢
编辑: JavaScript的身边,我发现了一个解决方案(因为我注意到,反正我的代码是多余的,并试图做类似的事情在JS & HTML)。对于JavaScript的一部分,我用:
{% if curr_sn|length > 1 %}
i = {{ curr_sn|length }}
{% endif %}
只是为了保持计数从板的当前数目。 现在我需要解决html部分以显示上下文变量中保存的板子curr_sn
说实话我很难理解你的问题。谨慎阐述? – Y2H
我有一个页面,可以接受不同数量的板名输入(默认为显示1行,并且用户可以通过单击链接到add_field()函数的按钮来添加更多字段。当用户提交表单时,如果出现错误,我想在它们各自的文本框中保留它的名称,我尝试这样做的方法是在名为'curr_sn'的上下文中将名称保存在python侧面代码中。回到html代码中,我想检查一下,如果列表中当前主板的值存在,我想显示它。js&html部件都不适用于我 – Jonathan