我知道这已被要求死亡,但我的问题与已有的答案有所不同。
我希望在第一个组合框的更改侦听器上更改2个其他组合框的值。当只有1个组合框/下拉列表时,这种情况发生得很顺利。但是现在第二个组合框没有发生数据的分离或解析。
categoryValue = req.getParameter("bellCategorySel");
List<String> paramList = insightDbConn.getParametersList(categoryValue);
List<String> testStationList = insightDbConn.getTestStationsFromTestRecords(categoryValue);
String parsedParamList = new Gson().toJson(paramList);
String parsedtestStationList = new Gson().toJson(testStationList);
PrintWriter out = resp.getWriter();
JSONObject json = new JSONObject();
json.put("parameters", parsedParamList);
json.put("teststations", parsedtestStationList);
out.print(json);
这是我后端的Servlet代码。我在第一个组合框上放置了一个更改侦听器,它给了我类别值。根据这个值,我一直在调用其他一组值(我已经验证,值正在好转),我的意思是放入其他两个组合框。
当它只是一个列表时,一切都很好。现在有2个。
下面是我用AJAX解析信息的前端代码:
$("#bellCategorySel").change(function(e) {
$.ajax({
type : 'POST',
cache : false,
data : {
frmSubmit : 'ajax',
bellCategorySel : document.getElementById("bellCategorySel").value,
},
dataType: 'json',
url : '/AnalysisPanel/gaussianbell',
success : function(jsonResponse) {
var arr = JSON.parse(jsonResponse.parameters),
opts = '';
$.each(arr, function(key, val){
opts += '<option value="' + val + '">' + val + '</option>';
});
$('#bellParameterSel').empty().append(opts)
var stations = JSON.parse(jsonResponse.teststations),
stns = '';
$.each(stns, function(key, val){
stns += '<option value="' + val + '">' + val + '</option>';
});
$('#testStation').empty().append(stns)
}
});
e.preventDefault();
return false;
});
尝试使用Chrome进行调试,但不是!一切都很好。 第一个组合框的值会发生变化,但第二个组合会保持空白/空白。不知道为什么!
请放轻松我,我是初学者
答案 0 :(得分:0)
您使用JSON数据填充的Javascript变量station
看起来不是您在each()
调用中迭代的内容:
var stations = JSON.parse(jsonResponse.teststations),
stns = '';
$.each(stns, function(key, val){
将其修复为:
$.each(stations, function(key, val){