为什么我的js函数在脚本标记内部工作,为什么不在外部javascript文件django表单中工作
在django中,我有一个表单,在选中组件时显示纯文本,如下所示为什么我的js函数在脚本标记内部工作,为什么不在外部javascript文件django表单中工作,javascript,django,Javascript,Django,在django中,我有一个表单,在选中组件时显示纯文本,如下所示 class CompanySearchForm(forms.Form): check = forms.BooleanField() def __init__(self, *args, **kwargs): super(CompanySearchForm, self).__init__(*args, **kwargs) self.fields['check'].widget.attr
class CompanySearchForm(forms.Form):
check = forms.BooleanField()
def __init__(self, *args, **kwargs):
super(CompanySearchForm, self).__init__(*args, **kwargs)
self.fields['check'].widget.attrs.update({"onclick": 'show_p()', 'id': 'check'})
我还有一个js文件,它具有以下功能
function show_p() {
var checkBox = document.getElementById("check");
var texto = document.getElementById("text");
if (checkBox.checked == true){
texto.style.display = "block";
} else {
texto.style.display = "none";
}
}
我的模板:
{% extends 'base.html' %}
{% load static %}
{% block extra_styles %}
<script href="{% static 'js/ajax_ubigeo.js' %}"></script>
{% endblock %}
{% block content %}
<form action="" method="post">
{% csrf_token %}
{{ form.check }}
</form>
<p id="text" style="display: none">hola</p>
{% endblock %}
{%extends'base.html%}
{%load static%}
{%block extra_styles%}
{%endblock%}
{%block content%}
{%csrf_令牌%}
{{form.check}
霍拉
{%endblock%}
我的问题是为什么show_p()在脚本标记和模板内部工作。但是为什么不在外部java脚本文件中呢?它不在同一块中。您没有在实际的基础模板中呈现脚本标记。将所有内容包装在同一块中,或将脚本添加到基本模板中。替换:
<script href="{% static 'js/ajax_ubigeo.js' %}"></script>
与:
看看会发生什么。理由是:
href请求网页、表单处理程序、块等资源
引用引用页或样式表。在许多情况下(除了样式)
页)链接将打开一个新网页,从中单击“后退”按钮
我们应该回到上一页
src表示嵌入在当前文档中的资源,
例如,img、视频、音频或脚本。浏览器将分配
屏幕不动产取决于屏幕的物理尺寸
嵌入对象。href没有这样的规定
另外,确保文件存在于告诉static查看的位置
如果这不能解决问题,请发布base.html模板或确保存在额外的_样式块。呈现页面时,查看页面源代码时是否显示脚本块
参考:请提供更具体的细节或示例。事实上,没有太多解释“将其包装在同一块中”分享一个示例。他在那里展示的是渲染-在一个基本模板中可以有多个块标记。你不需要把所有的东西都塞进一个街区。不,你不需要。我没那么说
<script src="{% static 'js/ajax_ubigeo.js' %}" type="text/javascript"></script>