我正在使用django模板动态生成带有隐藏输入的表单,这些模板应该在单击某些相关文本标签时提交。问题是我无法让它发挥作用。
{% for tag in tags %}
<form name="remove_{{ tag }}" id="{{ tag }}" action="/filter" method="post" accept-charset="utf-8">
<input type="hidden" name="remove_tag" value ="{{ tag }}" />
</form>
<a href="javascript: remove_tag({{ tag }})">{{ tag }}</a>
{% endfor %}
<script type="text/javascript">
function remove_tag(tag) {
document.getElementById(tag).submit();
return false;
}
</script>
此代码生成以下javascript错误:未捕获TypeError:无法调用方法'submit'为null
我也尝试使用
提交表单document.forms[tag].submit();
(将表单名称更改为标记),但收到几乎相同的错误,但使用'undefined'而不是null。
在第二个例子中,看起来javascript函数试图将'tag'解释为整数。如果我使用整数,它可以正常工作。我可以使用首先用于生成表单的forloop.counter,但这有点难看并且使代码更难维护。
是否还有其他有效的方式在表单上调用submit()?
答案 0 :(得分:1)
行情:
<a href="javascript: remove_tag('{{ tag }}')">{{ tag }}</a>
必须正确引用Javascript代码段的“tag”值才能在语法上正确。