我有一个动态的下拉列表,那么我如何迭代并在下拉列表中插入列表值?
var questionids = {"Name", "Age", "Smoker", "Drinker", "Visit Denist"};
<select name="questionid" id="questionids">
<c:forEach var="questionids" items="${questionids}">
<option value="">${questionids}</option>
</c:forEach>
</select>
我试过如上所述。它不起作用。另外我需要每个选项的值应该自动递增,如第一个选项值是1,第二个选项值是2. e.t.c
任何人都可以建议解决方案
答案 0 :(得分:0)
这是正确的方法,但您必须在var
中为<c:forEach>
提供另一个名称,如下所示:
var questionids = {"Name", "Age", "Smoker", "Drinker", "Visit Denist"};
<select name="questionids" id="questionids">
<c:forEach var="questionid" items="${questionids}">
<option value="${questionid}">${questionid}</option>
</c:forEach>
</select>
答案 1 :(得分:0)
<% java.util.HashMap map = new java.util.HashMap();
map.put("0", "Name");
map.put("1", "Age");
map.put("2", "Smoker");
map.put("3", "Drinker");
map.put("4", "Visit Denist");
pageContext.setAttribute("map", map);
%>
<select name="questionid" id="questionids" >
<c:forEach items="${map}">
<option value="${items.key}">${items.value}</option>
</c:forEach>
</select>
答案 2 :(得分:0)
<select name="questionid" id="questionids">
</select>
您可以动态地使用javascript构建select。您可能希望使用arr值作为选项值。如果你想使用增量,你可以创建一个arr并循环它们。
var questionids = {"Name", "Age", "Smoker", "Drinker", "Visit Denist"};
// var valuesArr = [1, 2, 3, 4, 5];
$.each(questionids , function(i, e) {
$('#questionids').append("<option value='"+e+"'>"+e+"</option>");
// $('#questionids').append("<option value='"+valuesArr[i]+"'>"+e+"</option>");
});