Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过JSON接收数据时,清除子下拉列表中的旧选项_Javascript_Jquery_Ajax_Json_Jsp - Fatal编程技术网

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

Javascript 通过JSON接收数据时,清除子下拉列表中的旧选项,javascript,jquery,ajax,json,jsp,Javascript,Jquery,Ajax,Json,Jsp,我通过父下拉列表第一个下拉列表中的onchange事件填充子下拉列表第二个下拉列表。之后,通过子下拉列表的onchange事件,我将自动填充三个文本框。但我的问题是第一个下拉列表。第一个下拉列表的Id为combo,第二个下拉列表的Id为combo1 当我从第一个下拉列表中选择一个值,然后在第二个下拉列表中选择一个值时,通过在auto.jsp中添加下面编写的javascript,我得到了一个值1。但当我在第一个下拉列表中选择选项B时,在第二个下拉列表中我得到了2,但旧值1应该从第二个下拉列表中删除

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

当我从第一个下拉列表中选择一个值,然后在第二个下拉列表中选择一个值时,通过在auto.jsp中添加下面编写的javascript,我得到了一个值1。但当我在第一个下拉列表中选择选项B时,在第二个下拉列表中我得到了2,但旧值1应该从第二个下拉列表中删除,但它仍然保留在那里,为什么?类似地,当我从第一个下拉列表中多次选择A或B时,第二个下拉列表中出现了多个值1或2,我想删除并显示一次,即如果选择A,则显示1,如果选择B,则显示2,如何操作

auto.jsp

在auto.jsp“combo”change匿名函数中,替换:

$.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) {
    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])
        );
    }
});

希望这有帮助?

谢谢twilson,但如果我想从combo1.jsp返回多个值,即1、2、3、4…等等,那么我应该如何在auto.jsp中编辑javascript,以便在选择A后,我可以看到1、2、3、4,同样,当我选择B时,第二个组合框的下拉列表中将出现5、6、7、8?还有,我应该如何编辑json数组,以便它可以在combo1.jsp中存储多个值?我正在尝试解决我的上述问题,但无法解决请帮助我尝试用小提琴来做,但没有发生,请看我的第一条评论,我已经提到过,我正在显示1,2,3,4,但都以下拉方式显示在一行中。我是这个领域的新手,请帮帮我,我明白你现在的意思了!添加链接到answer@twilson..your答案不起作用,请在终端中测试您的代码,只有在它起作用后,我才会接受您的答案。在第一个组合框中的onchange事件之后,我无法填充第二个组合框,但之前它已经出现了。
$.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)
    );
});
$.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])
        );
    }
});