在django模板中使用javascript
我有一个工作的javascript文件,它使用element ID标记在html页面上添加和删除复选框和下拉列表。我想将javascript代码应用于django应用程序生成的表单。我试图通过如下更改javascript元素ID来隐藏字段在django模板中使用javascript,javascript,django,forms,Javascript,Django,Forms,我有一个工作的javascript文件,它使用element ID标记在html页面上添加和删除复选框和下拉列表。我想将javascript代码应用于django应用程序生成的表单。我试图通过如下更改javascript元素ID来隐藏字段 id1.style.visibility = 'hidden'; 匹配django生成的表单上的元素,但javascript没有生效,字段仍然可见 在我的django模板html文件中,我包含了来自django提供的站点的js文件 <head>
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文件压缩到客户端或任何我可能接触到的注入。。只是了解如何做到这一点
谢谢-Oli在包含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库的脚本标记中缺少“type”属性。我已经更新了代码,请看一看。在包含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库的脚本标记中缺少“type”属性。我已经更新了代码,请看一看。您可以这样做:
#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
#html
{%块主菜单%}
点击这里玩用户名
显示
隐藏
$(函数(){
$(“#显示按钮”)。单击(函数(){
$(“#id_username”).show();
});
$(“#隐藏按钮”)。单击(函数(){
$(“#id_username”).hide();
});
});
{%csrf_令牌%}
{{reg_form.as_p}}
#forms.py
班级登记表(forms.Form):
username=forms.CharField(label=“username”,最大长度=30)
email=forms.EmailField(label=“email”)
password=forms.CharField(label=“password”,widget=forms.PasswordInput())
password2=forms.CharField(label=“Password(再次)”,widget=forms.PasswordInput()
这里有你的清洁方法等等
Django将自动为您的字段创建一个id,如id\u yourfield。您可以这样做:
#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
#html
{%块主菜单%}
点击这里玩用户名
显示
隐藏
$(函数(){
$(“#显示按钮”)。单击(函数(){
$(“#id_username”).show();
});
$(“#隐藏按钮”)。单击(函数(){
$(“#id_username”).hide();
});
});
{%csrf_令牌%}
{{reg_form.as_p}}
#forms.py
班级登记表(forms.Form):
username=forms.CharField(label=“username”,最大长度=30)
email=forms.EmailField(label=“email”)
password=forms.CharField(label=“password”,widget=forms.PasswordInput())
password2=forms.CharField(label=“Password(再次)”,widget=forms.PasswordInput()
这里有你的清洁方法等等
Django将自动为您的字段创建一个id,如id#yourfield。为什么不执行$('#id1').hide()?我应该把代码放在哪里?我已经看了这篇文章,这是我想做的,但不知道在哪里编码?你到底是如何调用JS的?我以为javascript是在页面加载时执行的。也许这就是问题所在?因此,它需要在html文件中调用?如果您正在隐藏或显示字段以响应选中的复选框,那么在加载页面时仅运行JS有什么意义?假设您希望它位于复选框的
onclick
属性上,否?为什么不执行$('#id1').hide()?我应该把代码放在哪里?我已经看了这篇文章,这是我想做的,但不知道在哪里编码?你到底是如何调用JS的?我以为javascript是在页面加载时执行的。也许这就是问题所在?因此,它需要在html文件中调用?如果您正在隐藏或显示字段以响应选中的复选框,那么在加载页面时仅运行JS有什么意义?假设您希望它位于复选框的onclick
属性上,否?jquery库的脚本标记中也缺少“type”属性。我已经更新了代码,请看一看。@Amyth如果根据HTML 5标准,脚本的类型为“text/javascript”,则不需要指定type属性。此外,jquery库的脚本标记中缺少“type”属性。我已经更新了代码,请看一看。@Amyth如果根据HTML 5标准,脚本的类型为“text/javascript”,则不需要指定type属性。感谢Serg抽出时间回答我的问题。这让我上路了。。加上这一点,我有足够的时间去理解它是如何运作的。。我知道django为我创建了ID,所以我使用firebug来确定这些ID,并附加jquery代码以获得我想要的结果。感谢Serg抽出时间回答我的问题。这让我上路了。。加上这一点,我有足够的时间去理解