【发布时间】:2017-05-25 14:27:58
【问题描述】:
我有 3 个下拉列表,在选择第一个下拉列表的值后,我使用 jQuery 和 ajax 填充第二个下拉列表。我想要的是为第二个下拉菜单设置一个默认项,例如 Select a value。
这是我的jsp:
<!DOCTYPE HTML>
<html>
<head>
<title>Home</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
<!--[if lte IE 9]><link rel="stylesheet" href="assets/css/ie9.css" /><![endif]-->
<noscript><link rel="stylesheet" href="assets/css/noscript.css" /></noscript>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script type = "text/javascript">
$(document).ready(function (){
$(".dropdown").change(function(event){
var name = $("#doctype").val();
$.ajax({
url:'ServiceToFetchSubType',
data: {name:name},
type:'post',
cache:false,
success: function(response){
var select = $('#docsubtype');
select.find('option').remove();
$.each(response, function(index, value){
$('<option>').val(value).text(value).appendTo(select);
});
callback.apply(select);
}
});
});
});
</script>
<script type="text/javascript">
$(document).ready(function (){
$(".dropdown1").change(function(event){
var name = $("#doctype").val();
var name2 = $("docsubtype").val();
$.ajax({
url: 'ServiceToFetchDocUnit',
data: {"name":name, "name1":name2},
type: 'post',
cache: false,
success: function(response)
{
var select = $('#docunit');
select.find('option').remove();
$.append($('<option>',{value: -1, text: "Select Doc Subtype"}))
$.each(response, function(index, value){
$('<option>').val(value).text(value).appendTo(select);
});
callback.apply(select);
}
});
});
});
</script>
</head>
<body>
<!-- Wrapper -->
<div id="wrapper">
<!-- Header -->
<header id="header">
<div class="content">
<div class="inner">
<h1>Drop Down Menu</h1>
<div class="dropdown">
<select name="doctype" id="doctype" class="my_dropdown" style="color:white; background:#655D78">
<option disabled="disabled" selected="selected">Select Doc Type</option>
<c:forEach items="${bt}" var="doctypes">
<option><c:out value="${doctypes}"/></option>
</c:forEach>
</select>
</div>
<div class="dropdown1">
<select name="doctype" id="docsubtype" class="my_dropdown1" style="color:white; background:#655D78">
<option disabled="disabled" selected="selected">Select Doc SubType</option>
<option></option>
</select>
</div>
<div class="dropdown2">
<select name="doctype" id="docunit" class="my_dropdown2" style="color:white; background:#655D78">
<option disabled="disabled" selected="selected">Select Doc Unit</option>
<option></option>
</select>
</div>
</div>
</div>
</header>
<!-- Main -->
<!-- Footer -->
<footer id="footer">
<p class="copyright">© Design: Content Management OPS</p>
</footer>
</div>
<!-- BG -->
<div id="bg"></div>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/skel.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>
</html>
我对 jQuery 和 AJAX 还很陌生,感谢任何形式的帮助。提前致谢。
【问题讨论】:
-
$("#docsubtype")[0].options.length=1将保留第一个选项并删除其余选项 - 使用它而不是select.find("options").remove -
@mplungjan “删除其余部分”是什么意思?对不起,我没有得到你。我想要的是 然后有下拉列表
-
我知道。试试我的代码。它将保留您在 HTML 中编写的内容,而您的附加内容只会在其后添加新内容。
标签: javascript jquery ajax jsp