【发布时间】:2016-12-19 10:11:10
【问题描述】:
我需要根据选择更改下拉列表的选项。 我想使用一个选择的下拉列表。
https://harvesthq.github.io/chosen/
我做了一个小提琴,效果很好。
https://jsfiddle.net/3hkhcycg/12/
问题是我无法让它在我的项目中工作。 恐怕我没有把正确的东西放在正确的地方。
这就是我包含内容的方式和位置。
head 标签的末尾:
<link rel="stylesheet" href="../Libs/chosen_v1.6.2/docsupport/prism.css">
<link rel="stylesheet" href="../Libs/chosen_v1.6.2/chosen.css">
前面的某个地方
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="../Libs/chosen_v1.6.2/chosen.jquery.js" type="text/javascript"></script>
<script src="../Libs/chosen_v1.6.2/docsupport/prism.js" type="text/javascript" charset="utf-8"></script>
//HTML code that describes my elements
//JS code in a script tag with jquery
我注意到:
- 如果我把JS代码放在
$(document).ready里面- 它给出一个错误:
Uncaught TypeError: $(...).chosen is not a function
- 它给出一个错误:
- 如果在外面
$(document).ready- 没有错误,下拉字段看起来像一个选择的下拉列表,但它并没有根据选择改变内容。
- 如果它在
$(document).ready之外,我删除$(".chosen_class").chosen({ width:"90%"})- 它会更改内容,但当然,它看起来不像是选择的下拉菜单
更新: 我需要从 JS 类激活的弹出窗口的下拉菜单。 代码很多,我把相关的放在这里。
MyClass.prototype.showPopUp= function(){
document.getElementById('my_div').style.display = "block";
}
<div id="my_div" style = "display:none;">
<form>
<select id="select1" >
<option value=""></option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<select id="select2" class="chosen_class" data-placeholder="Select here" multiple>
</select>
</form>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.1.0/chosen.jquery.min.js"></script>
<script>
$(document).ready(function () {
$(".chosen_class").chosen({
width:"90%"
});
$("#select1").change(function () {
var letter = $(this).val();
$('#select2').empty();
if (letter == "A") {
$('#select2')
.append("<option value='letter A'>letter A</option>")
.trigger("chosen:updated");
} else if (letter == "B") {
$('#select2')
.append("<option value='letter B'>letter B</option>")
.trigger("chosen:updated");
} else if (letter == "C") {
$('#select2')
.append("<option value='letter C'>letter C</option>")
.trigger("chosen:updated");
}
});
});
一切都在 myFile.php 我将这个文件包含在我的项目中,如下所示:
<?php require_once(ROOTPATH."/myFile.php"); ?>
</body>
</html>
【问题讨论】:
-
当你写你添加对 jquery 库的引用时,你是什么意思?它应该是 head 部分的一部分,或者更好的是,就在 body 部分的关闭之前(
标签: javascript jquery html jquery-chosen