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

时间:2014-08-02 06:33:15

标签: 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>

1 个答案:

答案 0 :(得分:2)

您可以先使用以下方法清除下拉列表:

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

或保留第一个选项并使用以下方式删除休息:

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