关于javascript调用jsp程序的问题

koolgi 2004-10-18 10:04:19
我有一个form,form里有以下两行内容:
<input class=InputBorder size=12 maxlength=20 type="text" name="SpecialtyName" readonly>
<input class=InputBorder size=12 maxlength=20 type="text" name="SpecialtyCode">
上面这两个input同时也在一个table的cell里

上面一行代表“专业名称”,下面是“专业代码”。我想当我在“专业代码”中输入完一个代码,这个input失去焦点时,“专业名称”一栏中自己显示相应的名称,这个显示名称需要用JSP来查数据库。

如何在”专业代码“失去焦点时调用这个JSP程序呢?

谢谢大家,不知道我说清楚没有!
...全文
255 16 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dlxu 2004-10-18
把所有可能的情况一次性都放在Javascript中随HTML一起生成
  • 打赏
  • 举报
回复
superfishmanweb 2004-10-18
其实,不用怎么麻烦,只要你需要检测数据的时候,比如是input失去焦点时,就触发了一个javascript事件,这个事件就弹出了另一个网页,而网页的距离是离开了显示的范围这就看不到了,然后你在网页之中写什么jsp都可以了,直到做完所有的操作之后就用window.close(),关闭着个弹出的页面,着样就做到了用javascript控制jsp了.
如果要在jsp中用jscript控制jsp的`不可能的确,因为jsp是在服务器端,而javascript就是在客户端,那运行的时候肯定就是先走服务器再走客户的了,无论你怎么写都是先走了jsp先的,只有这这种办法可以简单地实现你的要求,实现起来逻辑又简单有快
  • 打赏
  • 举报
回复
koolgi 2004-10-18
第一种办法:提交请求action,请求相应的actionbean;
我应该在javascript中写什么代码呢,才能调用 javabean
  • 打赏
  • 举报
回复
linuxbing 2004-10-18
onchange()后提交form,来调用你的javabean
  • 打赏
  • 举报
回复
yy2001 2004-10-18
gz
  • 打赏
  • 举报
回复
MARS.nEIL 2004-10-18
同意 chenzongshan(chenzongshan)
  • 打赏
  • 举报
回复
koolgi 2004-10-18
好的,我先去在网上查查select联动,大家再说说呀!
  • 打赏
  • 举报
回复
gnodiew 2004-10-18
建议:
这种类似的问题有好多,通常不采用上述解决方法
因为每作一次JSP程序的调用要跟服务器有通讯,这个时间相对来讲很慢
解决办法可以如下:当出现上述有连动的问题时,通常将连动的数据一次性写入*.js文件中,这样第就一次就下载到本地,这之后就可以完全用javascript在客户端操作了
最常见的例子就是从一个select中选一个省,另一个select列出相应的城市
  • 打赏
  • 举报
回复
koolgi 2004-10-18
谢谢呀
我知道用onblur()或onchange()来触发javascript事件,那如何在事件中调用JSP程序呢?
  • 打赏
  • 举报
回复
chenzongshan 2004-10-18
使用onblur()事件,在javascript的事件中使用:
第一种办法:提交请求action,请求相应的actionbean;
第二种方法:请求jsp;
第三种方法:采用xmlhttp,请求数据;
  • 打赏
  • 举报
回复
jenry_leon 2004-10-18
你说的好象有点想select的联动 问题!
到网上去查查!
可以用js或javascipt!

如果是struts模式,可以在onchang()事件中写连接到你想要的action!
  • 打赏
  • 举报
回复
liushui05 2004-10-18
http://211.152.17.26:8080/001.jsp
楼主试试这个页面,然后输入1获11,不行的话给我联系
MSN:liushui05@hotmail.com
  • 打赏
  • 举报
回复
koolgi 2004-10-18
我刚刚试过了,我输入1按回车没有反映,IE左下角出现”!完毕“或”!网页有错误“
  • 打赏
  • 举报
回复
koolgi 2004-10-18
var oXMLDoc = new ActiveXObject('MSXML');
这句话对于IE来说是不是存在安全性的问题,从而导致IE不执行或弹出安全警告?
  • 打赏
  • 举报
回复
liushui05 2004-10-18
上面的代码你调试的时候我只定义可输入1和11的情况
  • 打赏
  • 举报
回复
liushui05 2004-10-18
楼主把下面的代码调试下,然后好研究一下,至于JS触发事件我用的是onkeyup,你可以自己修改,逻辑处理就在doIt.jsp里面完成。我没有加什么注释,我想你应该能看懂,有什么不明白就问吧~

001.jsp
----------------------------
<html>
<head>
<script language="javascript">
function checkIt()
{
var theValue =document.form1.SpecialtyCode.value;
var oXMLDoc = new ActiveXObject('MSXML');
sURL = 'doIt.jsp?SpecialtyCode='+theValue;
oXMLDoc.url = sURL;
var oItem=oXMLDoc.root.children.item(0);
var theValue=oItem.text;
var oValue = document.createElement('OPTION');
document.form1.SpecialtyName.value=theValue;
}
</script>
</head>
<body>
<form name="form1">
专业名称:<input size=12 maxlength=20 type="text" name="SpecialtyName" id="SpecialtyName" readonly><br>
专业代码:<input size=12 maxlength=20 type="text" name="SpecialtyCode" id="SpecialtyCode" onkeyup="checkIt();">
</form>
</body>
</html>


doIt.jsp
----------------------------------------------------------------------
<%
String SpecialtyCode=request.getParameter("SpecialtyCode");
String yourValue="";
if(SpecialtyCode!=null)
{
if(SpecialtyCode.equals("1"))
{
yourValue="java";
}
if(SpecialtyCode.equals("11"))
{
yourValue="jsp";
}
}
%>
<?xml version="1.0" encoding="gb2312" ?>
<test>
<value><%=yourValue%></value>
</test
  • 打赏
  • 举报
回复
发帖
Web 开发

8.0w+

社区成员

Java Web 开发
社区管理员
  • Web 开发社区
加入社区
帖子事件
创建了帖子
2004-10-18 10:04
社区公告
暂无公告