使用表单名称在javascript中提交表单

时间:2010-08-28 22:23:39

标签: javascript html django forms

我正在使用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()?

1 个答案:

答案 0 :(得分:1)

行情:

<a href="javascript: remove_tag('{{ tag }}')">{{ tag }}</a>

必须正确引用Javascript代码段的“tag”值才能在语法上正确。