我是Javascript,JSON和jQuery的新手。所以请对我很轻松。我有一个包含下拉列表的JSP页面。加载页面时,将填充下拉列表的内容。我编写了一个Servlet,它以Map的形式返回下拉列表的包含,并将其转换为JSON字符串并通过response.getWriter().write(json);
发送回jsp但是我无法从jsp中获取结果然后,从结果中填充下拉列表的包含。这是我的代码
customer.jsp
$(document).ready(function(){
getCustomerOption('customer');//try to pre-populate the customer drop down list
});
function getCustomerOption(ddId){
var dd = $('#' + ddId);
$.getJSON("http://localhost:8080/WebApps/DDListJASON", function(opts) {
$('>option', dd).remove(); // Remove all the previous option of the drop down
if(opts){
$.each(opts, function(key, value){
dd.append($('<option/>').val(key).text(value));
}
}
});
}
down where the drop down list is generated
<select id="customer" name="customer">
<option></option>
</select>
结果是没有任何内容填充到列表中。太伤心了
答案 0 :(得分:4)
我认为你在文档准备中调用了错误的函数
不应该是
getInitialOption('customer');
而不是
getCustomerOption('customer');
答案 1 :(得分:0)
您可以使用以下代码向<option>
添加其他<select>
个元素:
$("#selectID").append("<option>" + text + "</option>");
请参阅:JQuery Docs
答案 2 :(得分:0)
我不明白$(''),但我也不确定这个问题是什么,很难说清楚。
我知道如果你在内存中创建选项列表然后用.html(选项)附加一个而不是一次附加一个选项列表会更快。这也可以让人更容易理解,一次构建一行html然后追加它。