java - 如何在通过 <option> 标记填充另一个值之前清除 <select> 标记

标签 java javascript jquery

单击这些单选按钮时,它只会调用 servlet 并根据其内容填充下拉列表。

但问题是在第一次单击时它按预期填充但是如果我再次单击单选按钮然后它再次调用 servlet 并再次填充相同的东西(例如在下拉列表矩阵和矩阵中两次).

Q1:如何防止再次填充相同的东西????

第二件事是,在单击第一个单选按钮后,它将填充下拉菜单,假设为“矩阵”值,然后如果单击另一个单选按钮,它将填充另一个值,假设为“jack”(如预期的那样)但是问题是, 在下拉列表中,这两个值都包含“矩阵”和“插孔”,但我只想点击第一个单选按钮,然后它只填充“矩阵”,如果我点击第二个单选按钮,它只填充第一个“插孔”在填充另一个单选按钮的值之前应删除单选按钮的值 Q2:如何做到这一点??

jsp 页面:-

<b>Select Language :</b>
    <input type="radio" onclick="callServlet();"  id="lang1" name="lang" value="c">C
    <input type="radio" onclick="callServlet();" id="lang2" name="lang" value="cpp">C++
    <input type="radio" onclick="callServlet();" id="lang3" name="lang" value="java">Java

<b>Select Program :</b>
                        <select id="combo">
                            <option>-Select Program-</option>
                        </select>

这是我的 java 脚本函数,它将在单击单选按钮函数时调用:-

<script>
            function callServlet()
            {
                var d;
                $(function() {
                    d = $('input[name=lang]:checked').val();
                });
                console.log("value = " + d);
                $.ajax({
                    url: "AllProgramNameServlet",
                    type: "post",
                    data: {
                        language: d
                    },
                    success: function(msg)
                    {
                        for (i = 0; i < msg.length; i++)
                        {
                            var combo = document.getElementById("combo");
                            var option = document.createElement("option");                      
                            option.text = msg[i].programName;
                            option.value = msg[i].programName;
                            try {
                                combo.add(option, null); //Standard 
                            } catch (error) {
                                combo.add(option); // IE only
                            }
                        }
                    }
                });
            }
        </script>

最佳答案

您可以先清除下拉列表,然后再使用以下选项附加选项:

$('#combo').empty(); //empty the list

或保留第一个选项并使用以下方法删除其余选项:

$('#combo option:gt(0)').remove();

关于java - 如何在通过 <option> 标记填充另一个值之前清除 <select> 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25092348/

相关文章:

java - 对主代码和测试代码使用antlr4-maven-plugin

java - 将数字单词替换为数字

javascript - 为什么这个 `range` 实现会导致 Chrome 中的选项卡崩溃?

jquery - Wordpress 联系表格脱离 div

javascript - 将对象值替换为外部数组中的值

java - Java 中的字符串操作问题

java - Azure 移动服务 Android 错误

javascript - 当有 2 个数组要检查或比较时使用 javascript 过滤

javascript - DIV 元素的 Border-Radius 在 IE8 中不起作用

javascript - 允许 Google Chrome 使用 XMLHttpRequest 从本地文件加载 URL