struts表单如何通过一个文本框的所填写的内容来确定另一个文本框要显示的内容?

jiaqiangzhou 2009-06-04 10:15:45
如题,最好有具体例子,谢谢拉!
...全文
228 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
glancer_jzkangta 2009-06-04
  • 打赏
  • 举报
回复
额 呵呵~~ 正好回去想用ext完成楼主的功能~~~ 回去试试看
hli33 2009-06-04
  • 打赏
  • 举报
回复
我用的AJAX方法,没有经过测试,凭记忆写的,可能有些小错误的地方,你自己调试下,大概的思路就是这样,如果不好请大家不要"拍"我呀,我是菜鸟.


var http = getHTTPObject();
var divIsOpen = false;
//该函数可以创建我们需要的XMLHttpRequest对象
function getHTTPObject() {
  var xmlhttp = false;
  if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType) {
  xmlhttp.overrideMimeType('text/xml');
}
  } else if (window.ActiveXObject) {
try {
 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch(E) {
xmlhttp = false;
}
}
  }
if (!xmlhttp) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
  return xmlhttp;
}
function handleHttpResponse() {
if (http.readyState == 4) {
if (http.status == 200) {

var htmlDocument = http.responseText;
if (htmlDocument!="") {

document.getElementById("text2").value = htmlDocument ;

}

} else {
alert("请求发生异常!");
  alert(http.status);
}
}
}

function queryText2() {

var url = "../queryServlet?text1="+document.getElementById("text1").value;
http.open("GET",url,true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
return;
}

<td>
<html:text property="text1" styleId="text1" onblur="queryText2()"/>
</td>
<td>
<html:text property="text2" styleId="text2"/>
</td>


queryServlet里的doGet方法里写你的查询,然后输出来

private StringBuffer msgStr = new StringBuffer() ;
protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException
{
msgStr.append(***查询结果***);
response.getWriter().write(msgStr.toString());
}
shanghuanlb 2009-06-04
  • 打赏
  • 举报
回复
用Ajax应该比较方便吧
或者就用文本框失去焦点事件!
clarck_913 2009-06-04
  • 打赏
  • 举报
回复
看了楼主的要求

我知道的实现方式只有Ajax了
yyandlh 2009-06-04
  • 打赏
  • 举报
回复
用实现js最简单了。你先把两个文本框对象都得到,然后当输入的那个文本框失去焦点时你去获得它的value值,判断下该显示的值,然后把该显示的值赋给另一个文本框的value属性就行了。不知道你该显示的值是不是少量,如果多的话就得用ajax了,用ajax去请求数据库然后返回对应的该显示值赋给另一个文本框就行了
zhuyx808 2009-06-04
  • 打赏
  • 举报
回复

<script type="text/javascript">
var xmlHttpReq;
//创建XMLHTTP对象
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");
var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}

}else if(window.XMLHttpRequest){

xmlHttpReq = new XMLHttpRequest();
}
}
function show(val){
document.getElementById("***").style.display='';
document.getElementById("***").innerHTML="<font color=red size='4'>正在查询数据库,请稍等...</font>";
createXMLHttpRequest();
var url="Ajax.jsp?rand=" + Math.random() + "&val="+val;
xmlHttpReq.open("GET",url,true);
xmlHttpReq.onreadystatechange = showResult;
xmlHttpReq.send(null);
}
function showResult(){
if(xmlHttpReq.readyState == 4){
if(xmlHttpReq.status == 200){
var zap=trim(xmlHttpReq.responseText);
//下拉框。。。。。。

}
}
}
</script>





ajax.jsp就是一个连数据库取内容的jsp,


<%



String sql="";
StringBuffer sb=new StringBuffer();
if(request.getParameter("val")!=null){
val=request.getParameter("val");
sql="*************";
}
//连接数据库

try{
rs = stmt.executeQuery(sql);
if(rs.next()){
sb.append(rs.getString(1)+",");
*******
}

} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭连接
**********
}

out.print(sb.toString());

%>



jiaqiangzhou 2009-06-04
  • 打赏
  • 举报
回复
是要连接数据库的
我的思想是在表单里根据一个文本框输入的内容来查找数据库的内容然后显示在它下面的下拉列表里,怎么实现????????????急急急!
manchun 2009-06-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 jiaqiangzhou 的帖子:]
如题,最好有具体例子,谢谢拉!
[/Quote]

最好用js实现吧,如果需要连接后台数据库,最好用ajax来实现!
oklinsong 2009-06-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhuyx808 的回复:]
有没有人有struts 2 的二级联动实现?纯struts 2实现的,不用js的示例,谁有?发个上来看看,struts2 不会啊。。
[/Quote]
ajax
adown 2009-06-04
  • 打赏
  • 举报
回复
事件呀!自己写个嘛!比如:
onchange="document.getElementById('nextText').value=this.value";
复杂点的就来个function嘛!
<script>
function sendValueToText(){.....}
</script>
zhuyx808 2009-06-04
  • 打赏
  • 举报
回复
有没有人有struts 2 的二级联动实现?纯struts 2实现的,不用js的示例,谁有?发个上来看看,struts2 不会啊。。
swandragon 2009-06-04
  • 打赏
  • 举报
回复
A文本框失去焦点的时候给B文本框赋值
jiaqiangzhou 2009-06-04
  • 打赏
  • 举报
回复
有没有例子啊?
lvsh870228 2009-06-04
  • 打赏
  • 举报
回复
<input type="text" name="id" id="id"/>
...name="id2"....
<js>
var abc = document.getElementById("id")
... abc2 = ...("id2");
abc2.value= abc.value;
</js>
hli33 2009-06-04
  • 打赏
  • 举报
回复
光标移动事件可以吧
用Click和KeyPress事件捕捉,SelectionStart属性可以知道当前光标的位置.
jiaqiangzhou 2009-06-04
  • 打赏
  • 举报
回复
怎么实现啊?
sunxin1001 2009-06-04
  • 打赏
  • 举报
回复
我觉得用JavaScript比较好实现
zhuyx808 2009-06-04
  • 打赏
  • 举报
回复
这个跟struts表单没关系的吧,js ajax完成的事
blliy117 2009-06-04
  • 打赏
  • 举报
回复
提示

js


当 A文本框 失去焦点 onblur 时去做 对B文本框的操作或验证

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧