我在HTML表单中集成下拉菜单时遇到问题。我已经尝试了我能做的一切以及我在网上找到的东西,但它仍然无效。我发现这个代码在JSFiddle上运行正常。脚本路径很好,脚本正确加载。
我错过了什么吗?
<html>
<head>
<meta charset="UTF-8">
<link href="../semantic/packaged/css/semantic.min.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="../semantic/packaged/javascript/semantic.min.js"></script>
<script>
$('.ui.dropdown').dropdown();
</script>
</head>
<body>
<form class="ui form segment" style="width:400px; margin:auto;" method="POST" action="register_do.php">
<div class="field">
<label>학년</label>
<div class="ui fluid dropdown selection">
<input type="hidden" name="grade">
<div class="default text">학년</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="item" data-value="10">고1</div>
<div class="item" data-value="11">고2</div>
<div class="item" data-value="12">고3</div>
</div>
</div>
</div>
<div class="ui buttons">
<button class="ui red submit button">등록</button>
<div class="or"></div>
<div class="ui button" onClick="history.back();">취소</div>
</div>
</form>
</body>
</html>
答案 0 :(得分:14)
尝试放
<script>
$('.ui.dropdown').dropdown();
</script>
在结束</body>
标记之前。您在这些元素$('.ui.dropdown')
甚至存在于DOM之前运行下拉脚本,因此无法附加任何内容。
答案 1 :(得分:2)
尝试这样写:
$(document).ready(function() {
$('.ui.dropdown').dropdown();
});
您的脚本位于body标记的顶部,因此您必须检查DOM是否已准备就绪。 ready()函数将首先检查DOM是否就绪,然后运行脚本。
答案 2 :(得分:0)
如果对theme.config
中的集合下的菜单元素使用自定义主题但是不为主题文件夹中的变量和覆盖提供实际覆盖文件 - 即使是空文件,也会发生此错误。
没有显示js错误,但下拉列表不起作用。确保您提供了所有覆盖文件,或者仅在theme.config
中的自定义主题中替换您真正想要使用的元素。