如何使用jquery通过json返回列表填充Struts2UI选择标记? //struts.xml 杰森达 //动作类 公共类AjaxAction扩展了ActionSupport{ 专用字符串容量; 私人弦乐问候; 私人名单国家名单; 私有地图; 公共字符串execute()引发异常{ jsonData=newlinkedhashmap(); 问候语=“嗨”+“阿米特”; countryList=新的ArrayList(); 国家列表。添加(“美国”); 国家列表。添加(“英国”); 国家名单。添加(“俄罗斯”); put(“capacity”,this.getCapacity()); jsonData.put(“countryList”,countryList); jsonData.put(“countryMap”,countryMap); jsonData.put(“问候语”,问候语); 回归成功; } //二传手
}如何使用jquery通过json返回列表填充Struts2UI选择标记? //struts.xml 杰森达 //动作类 公共类AjaxAction扩展了ActionSupport{ 专用字符串容量; 私人弦乐问候; 私人名单国家名单; 私有地图; 公共字符串execute()引发异常{ jsonData=newlinkedhashmap(); 问候语=“嗨”+“阿米特”; countryList=新的ArrayList(); 国家列表。添加(“美国”); 国家列表。添加(“英国”); 国家名单。添加(“俄罗斯”); put(“capacity”,this.getCapacity()); jsonData.put(“countryList”,countryList); jsonData.put(“countryMap”,countryMap); jsonData.put(“问候语”,问候语); 回归成功; } //二传手,jquery,struts2,struts,struts2-jquery,struts2-json-plugin,Jquery,Struts2,Struts,Struts2 Jquery,Struts2 Json Plugin,} //脚本 $(文档).ready(函数(){ $(“#容量”)。更改(函数(){ var容量=$(“#容量”).val(); $.getJSON('CheckUserAction.action'{ 容量:容量 },函数(数据){ $('#abc').append(''+data.capacity); $(“#abc”).append(“”+data.countryList); $('xyz').attr('value',data.greeting); $('#pqr').attr('list
//脚本
$(文档).ready(函数(){
$(“#容量”)。更改(函数(){
var容量=$(“#容量”).val();
$.getJSON('CheckUserAction.action'{
容量:容量
},函数(数据){
$('#abc').append('
'+data.capacity);
$(“#abc”).append(“
”+data.countryList);
$('xyz').attr('value',data.greeting);
$('#pqr').attr('list',data.countryList);
});
返回false;
});
});
//JSP代码
首字母
我想用json返回的list countryList填充list(id:pqr),我可以更改textfield(id:xyz)的属性值,我还将其附加到div(id:abc)中,但我无法更改struts select标记的属性列表。
它与struts标记在HTML中的填充方式有关
另外,我没有使用struts jquery插件,也没有使用dojo插件。
谢谢您在data.countryList中收到了什么样的数据?你能发布这些数据吗?我希望下拉列表中没有名为list的属性。列出Struts提供的属性。您可以为下拉列表组合数据,如
//Script
$(document).ready(function() {
$("#capacity").change(function() {
var capacity = $("#capacity").val();
$.getJSON('CheckUserAction.action', {
capacity : capacity
}, function(data) {
$('#abc').append('<br>' + data.capacity);
$('#abc').append('<br>' + data.countryList);
$('#xyz').attr('value', data.greeting);
$('#pqr').attr('list', data.countryList);
});
return false;
});
});
//JSP code
<table border="0">
<tr>
<td><s:label for="capacity" value="Capacity" /></td>
<td><s:textfield name="capacity" placeholder="100" id="capacity"
value="abc"></s:textfield></td>
</tr>
<tr>
<td><s:label for="dynamic" value="Ajax" /></td>
<td><s:textfield name="dynamic" value="learning" id="xyz"></s:textfield></td>
</tr>
<tr>
<td><s:label for="flightId" value="Flights" /></td>
<td><s:select list="#{'1':'1' }" name="fightId" id="pqr"></s:select></td>
</tr>
</table>
<div id="abc">Initial</div>
否则,您正在更新Courty意味着您可以将数据附加到下拉列表中,如
$('#pqr').html(composed_country_list);
让我知道这是否有帮助。以下代码对我有效
$('#pqr').append(composed_country_list);
//JSP
脚本文件
//JSP
<s:select list="{}" name="fightId" id="pqr"></s:select>
$(文档).ready(函数(){
$(“#容量”)。更改(函数(){
var容量=$(“#容量”).val();
$.getJSON('CheckUserAction.action'{
容量:容量
},函数(数据){
countryListItem=data.countryList;
});
返回false;
});
});
var pqr=$(“#pqr”);
pqr.find('option').remove();
pqr.append('--Select--');
对于(变量i=0;i
使用javascript通过创建选项属性来填充列表。
struts select标记实际上在内部生成这种HTML 看。
$('#pqr').append(composed_country_list);
//JSP
<s:select list="{}" name="fightId" id="pqr"></s:select>
$(document).ready(function() {
$("#capacity").change(function() {
var capacity = $("#capacity").val();
$.getJSON('CheckUserAction.action', {
capacity : capacity
}, function(data) {
countryListItem = data.countryList;
});
return false;
});
});
var pqr = $('#pqr');
pqr.find('option').remove();
pqr.append('<option value=-1>--Select--</option>');
for(var i = 0; i < countryListItem .length; i++) {
var opt = document.createElement('option');
opt.innerHTML = countryListItem [i];
opt.value = countryListItem [i];
pqr.append(opt);
}