0

我有一个可用的 javascript 文件,它使用元素 ID 标记在 html 页面上添加和删除复选框和下拉列表。我想将 javascript 代码应用于由 django 应用程序生成的表单。我试图通过更改 javascript 元素 ID 来隐藏字段,如下所示,

id1.style.visibility = 'hidden';

匹配由 django 生成的表单上的元素,但 javascript 没有生效并且该字段仍然可见。

在我的 django 模板 html 文件中,我包含了来自 django 提供的站点的 js 文件。

<head>
   <script type="text/javascript" src="/static/js/submitform.js"></script>
   <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>

我可以在模板页面源代码中看到上面的js文件,可以点击链接查看javascript代码。所以我知道 javascript 文件包含在模板中。

我对我的 css 文件做了类似的事情,并且在模板页面上生效,但是我无法正确应用 javascript。

我已经为此苦苦挣扎了一段时间,以前没有这样做过。任何人都可以提供帮助或知道我可以阅读的任何文档,这些文档告诉我如何做到这一点?

对不起,如果这不是一个合适的问题,但以前没有这样做过,我只是坚持这个。我正在从事的项目是一个内部测试站点,所以我现在并不担心压缩 js 文件给客户或我可能接触到的任何注射……只是了解如何做到这一点。!

谢谢 - 奥利

4

2 回答 2

2

您需要在包含 jquery 文件之前包含 Jquery 库,因此将其交换为:

<head>
   <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
   <script type="text/javascript" src="/static/js/submitform.js"></script>
</head>

编辑:

jquery 库的脚本标记中也缺少“类型”属性。我已经更新了代码,看看。

于 2012-08-14T12:22:08.500 回答
1

你可以这样做:

#html
{% block main-menu %} 
    <br>
    <br>
    Click here to play with username
    <button id="show_button">show</button>
    <button id="hide_button">hide</button>
    <br>
    <br>
    <script type="text/javascript">
        $(function() {
                $("#show_button").click(function() {
                    $("#id_username").show();
                });
                $("#hide_button").click(function() {
                    $("#id_username").hide();
                });
        });
    </script>
    <div class="contentarea">
        <form method="post" action="">{% csrf_token %}
            {{ reg_form.as_p }}
            <input type="submit" value="register" />
        </form>
    </div>

#forms.py
class RegistrationForm(forms.Form):
    username = forms.CharField(label="Username", max_length=30)
    email = forms.EmailField(label="Email")
    password = forms.CharField(label="Password", widget=forms.PasswordInput())
    password2 = forms.CharField(label="Password (Again)", widget=forms.PasswordInput())

Here your clean methods and so on

Django 会自动为你的字段创建一个 id,比如 id_yourfield。

于 2012-08-14T12:27:40.293 回答