【发布时间】:2012-03-03 12:59:30
【问题描述】:
我通过父下拉列表(第一个下拉列表)中的 onchange 事件填充子下拉列表(第二个下拉列表)。之后,通过子下拉列表的 onchange 事件,我将自动填充三个文本框。但我的问题是第一个下拉菜单。第一个下拉列表的 ID 是 combo,第二个下拉列表的 ID 是 combo1。
当我从第一个下拉列表中选择 A 时,我在第二个下拉列表中通过在 auto.jsp 中添加下面编写的 javascript 获得了一个值 1。但是当我在第一个下拉列表中选择选项B 然后我在第二个下拉列表中得到2 但旧值 1 应该从第二个下拉列表中删除,但它仍然保留在那里,为什么?同样,当我从第一个下拉列表中多次选择 A or B 时,第二个下拉列表中会出现多个值 1 或 2,我想删除并显示一次,即如果选择 A,则将显示 1如果B会被选中,那么2会被显示出来,怎么办?
auto.jsp
<script type="text/javascript">
$(document).ready(function() {
$("#combo").change(function() {// by onchange event in first dropdown I populate second dropdown having id combo1
$.getJSON('combo1.jsp', {firstcombobox : this.value}, function(responseData) {
$("#combo1").append(
$("<option></option>").html(responseData.name).val(responseData.name)
);
});
});
// After getting value in second dropdown, by onchange event i am autofilling 3 textboxes.
$("#combo1").change(function() {
$.getJSON('combo2.jsp', { combo1Val : $(this).val() }, function(data) {
$("#firsttextbox").val(data.name);
$("#secondtextbox").val(data.roll_no);
$("#thirdtextbox").val(data.fine);
});
});
});
</script>
<body>
//First dropdown
<select id="combo" name="firstcombobox">
<option value="">select</option>
<option value="a">A</option>
<option value="b">B</option>
</select>
// Second dropdown
<select id="combo1" name="combo1Val" >
<option value="">select</option>
</select>
</body>
combo1.jsp
<%@page import="net.sf.json.JSONObject"%>
<%@page import="net.sf.json.JSONArray"%>
<%
String firstcombobox=request.getParameter("firstcombobox");
if(firstcombobox.equalsIgnoreCase("a")){// If selected value in first dropdown is A then 1 will be displayed as written below
JSONObject arrayObj= new JSONObject();
arrayObj.put("name","1");// I displayed 1 in second dropdown option when A is selected
response.setContentType("application/json");
response.getWriter().write(arrayObj.toString());
}
else if(firstcombobox.equalsIgnoreCase("b")){
JSONObject arrayObj= new JSONObject();
arrayObj.put("name","2");
response.setContentType("application/json");
response.getWriter().write(arrayObj.toString());
}
else{
}
%>
【问题讨论】:
标签: javascript jquery ajax json jsp