gpt4 book ai didi

javascript - 通过 JSON 接收数据时清除子下拉列表中的旧选项

转载 作者:行者123 更新时间:2023-11-30 05:59:55 25 4
gpt4 key购买 nike

我通过父下拉列表(第一个下拉列表)中的 onchange 事件填充子下拉列表(第二个下拉列表)。之后,通过子下拉列表的 onchange 事件,我将自动填充三个文本框。但我的问题是第一个下拉菜单。第一个下拉列表的 ID 是 combo第二个下拉菜单的 id 是 combo1 .

当我选择 A 时从第一个下拉列表然后我在第二个下拉列表中得到一个值 1通过在 auto.jsp 中附加下面编写的 javascript。但是当我选择选项 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{
}
%>

最佳答案

auto.jsp '#combo' 更改匿名函数,替换为:

$.getJSON('combo1.jsp', {firstcombobox : this.value}, function(responseData) {
$("#combo1").append(
$("<option></option>").html(responseData.name).val(responseData.name)
);
});

与:

$.getJSON('combo1.jsp', {firstcombobox : this.value}, function(responseData) {
$("#combo1").empty().append(
$("<option></option>").html(responseData.name).val(responseData.name)
);
});

要将字符串拆分为数组,请看这里:How do I split a string, breaking at a particular character?

他们使用如下:

$.getJSON('combo1.jsp', {firstcombobox : this.value}, function(responseData) {
var splitValues = responseData.name.split(/,/);

$("#combo1").empty().append("<option value="0">Please select...</option>");

for (var idx in splitValues) {
$("#combo1").append(
$("<option></option>").html(splitValues[idx]).val(splitValues[idx])
);
}
});

希望这有帮助吗?

关于javascript - 通过 JSON 接收数据时清除子下拉列表中的旧选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9238267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com