单击这些单选按钮时,它只会调用 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/