login.jsp
<script type="text/javascript">
function selectRoleByAccountId(){
var accountId = $("#account\\.id").val();
if(accountId != 0){
$.ajax({
type:'POST',
url:'/PlantAssetCard_getAccountRoles.action',
data:'accountId=' + accountId,
error:function(){
alert("JQuery AJAX Error!");
},
success:function(data){
$("#accountRoles").html(data); //把Freemarker中返回的值接收
}
});
}
}
</script>
</head>
<body>
<table>
<tr>
<td>
<select name="account.id" id="account.id" style="width:80px" οnchange="selectRoleByAccountId()">
<option value="0">请选择</option>
<#list result as li>
<option value="${(li)!''}" >${(li)!'未定义'}</option>
</#list>
</select><span id="pwd_error"></span>
</td>
<td height="20" align="right"><font style=" font-weight:bold;font-size: 13px ">角 色:</font></td>
<td id="accountRoles">
<select name="role.id" id="role.id" style="width:80px">
<option value="0">选择角色</option>
</select><span id="pwd_error"></span>
</td>
</tr>
</table>
</body>
</html>getAccountRole.jsp
<table>
<select name="role.id" id="role.id" style="width:80px">
<#list roleSet as role>
<option value="${(role.getSub().getSubjectName())!''}">${(role.getSub().getSubjectName())!'未定义'}</option>
</#list>
</select><span id="pwd_error"></span>
<table>
Action脚本
public String getAccountRoles() throws Exception {
Account account = new Account();
account = accountService.findAccount(accountId);
roleSet = account.getRoles();
return AppConstants.RETURN_TYPE_FREEMARKER;
}
在这里面可以理解成先选择省,然后根据省去动态生成市,达到动态调用的效果
用第二个页面来代替其中的数据$("#accountRoles").html(data); //把Freemarker替换到原页面中
这样就实现了一部分刷新的效果
其中的第二个页面来代替data,达到效果
2011.7.15 Ajax局部刷新
最新推荐文章于 2024-09-20 16:26:58 发布