在我的 Django 模板中显示 Chosen.js 时遇到问题
Having issues with getting Chosen.js to display in my Django template
我正在学习开发,我正在使用一个名为 linter-jscs 的 linting 工具和 Atom。我有一个简单的 javascript 文件定义如下:
linter-jscs 无效的换行符
$(document).ready(function () {
$('#id_facilitydimselect').chosen();
}
)
;
linting 工具显示如下:
这真的是一个会导致我的代码无法运行的错误吗?我似乎无法摆脱它。
我正在尝试使用以下 Django 模板来使用所选的 javascript 库,但它没有正确显示。所以,这要么是由于我在下面的错误,要么是我没有得到的其他原因。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.js" type="text/javascript"></script>
<script src= "{% static '/accounts/chosen.jquery.js' %}" type="text/javascript"></script>
<script src= "{% static '/accounts/security_chosen.js' %}" type="text/javascript"></script>
<link rel="stylesheet" href="{% static '/accounts/chosen.css' %}">
<div>
<em>Facility: </em>
<select id_facilitydimselect="Choose a Facility..." class="chosen-select" multiple tabindex="4">
{% for facility in facilitydim %}
<option value="{{facility.coid_name}}">{{facility.coid_name}}</option>
{% endfor %}
</select>
我知道 Chosen 已使用 pip install django-chosen 正确安装,我可以在控制台的 GET 语句中看到它,如下所示:
[08/Jan/2018 09:52:39] "GET /account/profile/ HTTP/1.1" 200 76624
[08/Jan/2018 09:52:39] "GET /static/accounts/security_chosen.js HTTP/1.1" 200 88
[08/Jan/2018 09:52:39] "GET /static/accounts/chosen.css HTTP/1.1" 200 11978
[08/Jan/2018 09:52:39] "GET /static/accounts/chosen.jquery.js HTTP/1.1" 200 47205
真正的问题是什么?
您的 js/jquery 代码没问题,但您必须将 id 属性添加到 select 输入。
<select id="id_facilitydimselect" class="chosen-select" multiple tabindex="4">
{% for facility in facilitydim %}
<option value="{{facility.coid_name}}">{{facility.coid_name}}</option>
{% endfor %}
</select>
使用 jQuery 时,获得 select 或正确在 99% 的情况下绝对至关重要。最常用的是:
id selector selects 具有特定 id 值的元素:
$("#id_value")
attribute equals selector即selects元素与某属性name/value组合
$("[attribute='value']")
// for example selector that selects elements with attribute name="test"
$("[name='test'])
attribute contains selector selects 个元素,其中属性包含特定值
$("[attribute*='value']")
// for example selector that selects element where attribute name contains 'est'
$("[name*='est']);
:input selector 其中 select 所有输入、文本区域、select 和按钮元素(所有表单控件)
$(":input") // selects all inputs
$("form") // selects form
我正在学习开发,我正在使用一个名为 linter-jscs 的 linting 工具和 Atom。我有一个简单的 javascript 文件定义如下:
linter-jscs 无效的换行符
$(document).ready(function () {
$('#id_facilitydimselect').chosen();
}
)
;
linting 工具显示如下:
这真的是一个会导致我的代码无法运行的错误吗?我似乎无法摆脱它。
我正在尝试使用以下 Django 模板来使用所选的 javascript 库,但它没有正确显示。所以,这要么是由于我在下面的错误,要么是我没有得到的其他原因。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.js" type="text/javascript"></script>
<script src= "{% static '/accounts/chosen.jquery.js' %}" type="text/javascript"></script>
<script src= "{% static '/accounts/security_chosen.js' %}" type="text/javascript"></script>
<link rel="stylesheet" href="{% static '/accounts/chosen.css' %}">
<div>
<em>Facility: </em>
<select id_facilitydimselect="Choose a Facility..." class="chosen-select" multiple tabindex="4">
{% for facility in facilitydim %}
<option value="{{facility.coid_name}}">{{facility.coid_name}}</option>
{% endfor %}
</select>
我知道 Chosen 已使用 pip install django-chosen 正确安装,我可以在控制台的 GET 语句中看到它,如下所示:
[08/Jan/2018 09:52:39] "GET /account/profile/ HTTP/1.1" 200 76624
[08/Jan/2018 09:52:39] "GET /static/accounts/security_chosen.js HTTP/1.1" 200 88
[08/Jan/2018 09:52:39] "GET /static/accounts/chosen.css HTTP/1.1" 200 11978
[08/Jan/2018 09:52:39] "GET /static/accounts/chosen.jquery.js HTTP/1.1" 200 47205
真正的问题是什么?
您的 js/jquery 代码没问题,但您必须将 id 属性添加到 select 输入。
<select id="id_facilitydimselect" class="chosen-select" multiple tabindex="4">
{% for facility in facilitydim %}
<option value="{{facility.coid_name}}">{{facility.coid_name}}</option>
{% endfor %}
</select>
使用 jQuery 时,获得 select 或正确在 99% 的情况下绝对至关重要。最常用的是:
id selector selects 具有特定 id 值的元素:
$("#id_value")
attribute equals selector即selects元素与某属性name/value组合
$("[attribute='value']")
// for example selector that selects elements with attribute name="test"
$("[name='test'])
attribute contains selector selects 个元素,其中属性包含特定值
$("[attribute*='value']")
// for example selector that selects element where attribute name contains 'est'
$("[name*='est']);
:input selector 其中 select 所有输入、文本区域、select 和按钮元素(所有表单控件)
$(":input") // selects all inputs
$("form") // selects form