Ajax表单提交submit和button的问题innerHTML显示不同

这问题困扰我许久了。在head标签中的函数functiontest(){//创建xmlHttp对象之后vartest=document.getElementById("t... 这问题困扰我许久了。
在head标签中的函数
function test(){
//创建xmlHttp对象之后
var test=document.getElementById("text").value
var url="server.asp?test="+test
xmlHttp.onreadystatechange=function (){
if (xmlHttp.readyState==4 && xmlHttp.status==200){
document.getElementById("content").innerHTML=xmlHttp.responseText
//将服务器传回来的值写入<div>标签
}}
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
在body标签中提交表单
<form onsubmit="test()">
<input type="text" id="text"><input type="submit" value="提交">
</form>
<div id="content"></div>
实测在IE浏览器中,点击提交按钮或回车之后<div>中什么也不显示,好像test函数没有执行一样,奇怪的是,在document.getElementById("content").innerHTML=xmlHttp.responseText前加一句alert(xmlHttp.responseText)就可以显示了,同时弹出窗口,关闭弹出窗口后<div>中的内容又同时消失了。
但是将表单中的提交按钮换成普通按钮写成这样:
<form>
<input type="text" id="text"><input type="button" value="提交" onclick="test()">
</form>
<div id="content"></div>
就没有任何问题,<div>中可以显示服务器传回的值。为何用submit提交表单就会不正常?而用button按钮就没问题?想用submit提交是因为文本框输入的同时submit按钮获得了焦点,输入完回车就可以提交表单了,而普通按钮button不会获得焦点,输完还得用鼠标点一下才能提交。
展开
 我来答
郁闷蓝点
2010-06-01 · 超过15用户采纳过TA的回答
知道答主
回答量:42
采纳率:100%
帮助的人:37.6万
展开全部
实际上是执行了回调函数的,但是由于submit提交之后是会刷新界面的,结果显示之后立刻就刷新页面了,所以太快了导致你觉得没有效果,所以看不到任何显示,你把alert写在document.getElementById("content").innerHTML=xmlHttp.responseText之后再试一试看看是不是这个原因。至于像要回车提交也不一定非要submit写个onkeydown相应回车提交就好了。
yiwei124
2010-05-31 · TA获得超过1197个赞
知道小有建树答主
回答量:1187
采纳率:0%
帮助的人:355万
展开全部
submit 刷新界面
如果用button的话,只要在代码里写一个让button得到焦点的代码不就行了吗,这个代码很简单,百度一下网页学习一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苦宁势骏奇
2020-07-11 · TA获得超过3776个赞
知道大有可为答主
回答量:3099
采纳率:32%
帮助的人:214万
展开全部
这种细节性的东西真的比较难判断,尤其是跟服务器端交互的时候parameters的介入,经常出现问题,submit
就是一个parameters,但是具体的问题我不知道
不过我有个好的方法,就是你的前端使用jquery,它改善了
因为浏览器的不同而产程bug的缺点,多积累经验吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式