利用AJAX完成控件的联动(示例)以及验证
来源:互联网 发布:怎样测网络的稳定性 编辑:程序博客网 时间:2024/04/25 19:59
完成功能:如下图所示,选择下拉列表“名称”(struts2的autocompleter)中的某项,根据选择的值读取数据库中对应的代码值,并显示在代码textfield中。
环境:ssh,jsonplugin-0.32.jar
步骤1. 从数据库中读取名称列表,作为名称的显示项。autocompleter需要json格式的数据。这里使用jsonplugin-0.32.jar将action要传递的数据转换为json格式。
(1)jsonplugin-0.32.jar放入lib文件夹;
(2)action内容:
public String allNames(){
List<Organizationcode> orgCodesList=organizationCodeDAO.findAll();
for(Organizationcode orgCode:orgCodesList){
organizationNames.add(orgCode.getOrganizationName());
}
return SUCCESS;
}
struts配置:
<package name="jsonData" extends="json-default">
<action name="allNames" class="..." method="...">
<result type="json">
<param name="root">organizationNames</param>
</result>
</action>
</package>
jsp页面:
//autocompleter名称
<s:url id="Names" value="allNames.action"/>
<s:autocompleter name="name" id="name" theme="ajax" autoComplete="false" forceValidOption="true" dropdownWidth="240" resultsLimit="1000"
value="" searchType="substring" href="%{Names}" size="50" notifyTopics="/Names"/><div id="div" style="display:inline" ></div>
步骤2:验证并取对应的code。
(1)action内容
public String getCodeByName()throws Exception{
String returnText="";
HttpServletRequest request=ServletActionContext.getRequest();
name=request.getParameter("name");
name=java.net.URLDecoder.decode(name, "UTF-8");
organizationList=organizationDAO.getOrganizationNames(name);
if(!organizationList.isEmpty()){
returnText="该机构已经存在,请核查!"+"-";
}else{
returnText="该机构尚未注册!"+"-";
}
this.setCode(organizationCodeDAO.getCodeByName(this.getName()));
returnText+=this.getCode();
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out=response.getWriter();
out.write(returnText);
return null;
}
struts配置:
<action name="getCodeByName" class="OrganizationManagementAction" method="getCodeByName">
<result ></result>
</action>
jsp页面:
<input name="code" type="text" class="form_field_default" size="50" id="code" value="" readonly="readonly">
script(此处代码部分引自网络):
//创建xmlHttpRequest
var xmlHttpRequest ;
function createXMLHttpRequest(){
if(window.ActiveXObject){
//如果是IE浏览器
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP") ;
}
else if(window.XMLHttpRequest){
//如果是非IE浏览器
xmlHttpRequest = new XMLHttpRequest() ;
}
}
dojo.event.topic.subscribe("/Names",function(data,type,e){
var completer=dojo.widget.byId("name");
var organizationName=completer.comboBoxSelectionValue.value;
var url="getCodeByName.action?name="+organizationName;
url=encodeURI(url);
url=encodeURI(url);
//1创建XmlHttpRequest组键
createXMLHttpRequest();
//2初始化XmlHttpRequest,true表示使用异步,false表示同步
xmlHttpRequest.open("GET",url,true) ;
//3创建回调用函数
xmlHttpRequest.onreadystatechange = back ;
//4发送请求
xmlHttpRequest.send(null);
});
//回调函数,完成操作后,最后调用这个函数显示结果
function back(){
//4表示完成 200表示运行正常
if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200){
var str=xmlHttpRequest.responseText;//获取PrintWriter输出信息
var reback=new Array();
reback=str.split("-");
document.getElementById("div").innerHTML="<font size='2' color='green'>"+reback[0]+" </font>"
document.getElementById("code").value=reback[1];
}
}
- 利用AJAX完成控件的联动(示例)以及验证
- ajax的列表联动示例
- C#三级省市区ajax联动控件,利用UpdatePanel,以及页面取值
- 三级省市区ajax联动控件,利用UpdatePanel,以及页面取值
- 利用 CollapsingToolbarLayout 完成联动的动画效果
- 下拉列表联动总结(AJAX下拉列表联动简单示例)(lip009的专栏)
- AJAX示例二(下拉列表联动)
- ajax 二级联动示例
- Node和express中利用Jquery的$.ajax和HTML5的FormData完成文件上传示例
- MVC 利用Ajax联动
- Ajax和JSON完成二级菜单联动的功能
- JQUERY 的autocomplete UI自动完成控件的运用以及ajax的使用
- 用Ajax完成一个简单的验证
- 利用PickerView完成地址选择器(省市二级联动)
- 使用Ajax完成验证
- 今天完成了验证码的控件
- 一个完整的Ajax开发示例:二级联动
- ajax异步提交以及nicevalidator自定义验证示例
- js取值代码
- redis安装配置
- java 堆和栈的区别
- 一个C++面试题的数组和STL解法
- 资料写作中,关于段落的规范
- 利用AJAX完成控件的联动(示例)以及验证
- TCP/IP协议——TCP/IP协议栈及框架
- 从追MM谈Java的23种设计模式
- eclipse去掉数字开头代码
- Android收藏
- web服务控件介绍
- BeanShell简介
- 10大优秀的移动Web应用程序开发框架推荐
- cookie问题