通过JSON接收数据时,从子下拉列表中清除旧选项
我通过父下拉列表中的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
$(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( $("").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); }); }); }); //First dropdown select A B // Second dropdown select
combo1.jsp
在auto.jsp
‘#combo’中更改匿名函数,替换:
$.getJSON('combo1.jsp', {firstcombobox : this.value}, function(responseData) { $("#combo1").append( $("").html(responseData.name).val(responseData.name) ); });
有:
$.getJSON('combo1.jsp', {firstcombobox : this.value}, function(responseData) { $("#combo1").empty().append( $("").html(responseData.name).val(responseData.name) ); });
要将字符串拆分为数组,请在此处查看: 如何拆分字符串,打破特定字符?
他们使用如下:
$.getJSON('combo1.jsp', {firstcombobox : this.value}, function(responseData) { var splitValues = responseData.name.split(/,/); $("#combo1").empty().append(""); for (var idx in splitValues) { $("#combo1").append( $("").html(splitValues[idx]).val(splitValues[idx]) ); } });
希望这可以帮助?