input 的onclick事件 为什么不能用

郭薇薇_ 2014-06-06 11:25:18
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
.test{
background-color: blue;
}
</style>

</head>
<body>
<input type="button" onclick="showMsg()" value="调用Ajax显示内容" />
<span id="msg"></span>

<script type="text/javascript">
var xmlHttp;
function createXMLHttp(){
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
function showMsg(){
createXMLHttp();
xmlHttp.open("POST","content.html");
xmlHttp.onreadystatechange= showMsgCallback;
xmlHttp.send(null);
}
function showMsgCallback(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status ==200){
var text =xmlHttp.responseText;
document.getElementById("msg").className="test";
document.getElementById("msg").innerHTML=text;
}
}
}
</script>
</body>
</html>
...全文
28130 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程有钱人了 2014-06-07
  • 打赏
  • 举报
回复
引用 18 楼 sinat_16073327 的回复:
执行ajax必须要服务器吗? 可能是我没用服务器吧,在ecplise中启动服务器后正常显示了~
AJAX不能跨域(webkit内核的浏览器,有的浏览器可以),本地测试的时间是相对地址(物理地址)不是URL地址,会报错的
陆荃 2014-06-06
  • 打赏
  • 举报
回复
onclick="showMsg()" 可以执行。 应该是ajax写的有问题。
姜小白- 2014-06-06
  • 打赏
  • 举报
回复
估计你的showMsg 方法里面有问题,在showMsg() 方法内打alert() ,一步步调试,看到哪一步出错的,然后解决问题。
郭薇薇_ 2014-06-06
  • 打赏
  • 举报
回复
alert(123)能够正常显示 onclick=“showMsg()” 点击没反应~~~
teemai 2014-06-06
  • 打赏
  • 举报
回复
肯定执行了,你可以alert或者console.log debug
姜小白- 2014-06-06
  • 打赏
  • 举报
回复
引用 18 楼 sinat_16073327 的回复:
执行ajax必须要服务器吗? 可能是我没用服务器吧,在ecplise中启动服务器后正常显示了~
郭薇薇_ 2014-06-06
  • 打赏
  • 举报
回复
执行ajax必须要服务器吗? 可能是我没用服务器吧,在ecplise中启动服务器后正常显示了~
郭薇薇_ 2014-06-06
  • 打赏
  • 举报
回复
引用 13 楼 magi1201 的回复:
xmlHttp.open("POST","js/content.html") 试试
不行哎~
jackson_fighting 2014-06-06
  • 打赏
  • 举报
回复
引用 12 楼 sinat_16073327 的回复:
引用 8 楼 SDN_SUPERUSER 的回复:
要么后台报错, 要么js报错, chrome调试走起
请求为什么提交到html呢? content.html 是做什么处理的?
郭薇薇_ 2014-06-06
  • 打赏
  • 举报
回复
引用 4 楼 redcenter 的回复:
onclick="showMsg()" 可以执行。 应该是ajax写的有问题。
哪个地方有错误呢,请指导。
kenny20131224 2014-06-06
  • 打赏
  • 举报
回复
xmlHttp.onreadystatechange= showMsgCallback; xmlHttp.send(null); 你试下是不是这两句写反了
姜小白- 2014-06-06
  • 打赏
  • 举报
回复
xmlHttp.open("POST","js/content.html") 试试
郭薇薇_ 2014-06-06
  • 打赏
  • 举报
回复
引用 8 楼 SDN_SUPERUSER 的回复:
要么后台报错, 要么js报错, chrome调试走起
郭薇薇_ 2014-06-06
  • 打赏
  • 举报
回复
郭薇薇_ 2014-06-06
  • 打赏
  • 举报
回复
引用 9 楼 magi1201 的回复:
你的当前页面和content.html都在什么目录下呢?将他们放到test工程的根目录下面,也就是WebContent或WebRoot目录下面,再试试,看能否]跳转过去?可以的话,可能就是路径问题了;如果不可以,那就看content.html文件是否有问题了。

[img=https://img-bbs.csdn.net/upload/201406/06/1402032135_241498.jpg][/img 我只是在一个编辑器写了一个test的代码 难道ajax必须要tomcat吗?
姜小白- 2014-06-06
  • 打赏
  • 举报
回复
你的当前页面和content.html都在什么目录下呢?将他们放到test工程的根目录下面,也就是WebContent或WebRoot目录下面,再试试,看能否跳转过去?可以的话,可能就是路径问题了;如果不可以,那就看content.html文件是否有问题了。
jackson_fighting 2014-06-06
  • 打赏
  • 举报
回复
要么后台报错, 要么js报错, chrome调试走起
郭薇薇_ 2014-06-06
  • 打赏
  • 举报
回复
引用 6 楼 magi1201 的回复:
xmlHttp.open("POST","content.html"); 这个是请求到后台去呢还是?
如果去后台,打断点看看后台的代码有没有问题,是否后台出错了。


content.html 只是同一个目录下的测试html文件 ~ 不是后台吧
姜小白- 2014-06-06
  • 打赏
  • 举报
回复
xmlHttp.open("POST","content.html"); 这个是请求到后台去呢还是? 如果去后台,打断点看看后台的代码有没有问题,是否后台出错了。
郭薇薇_ 2014-06-06
  • 打赏
  • 举报
回复
引用 3 楼 magi1201 的回复:
估计你的showMsg 方法里面有问题,在showMsg() 方法内打alert() ,一步步调试,看到哪一步出错的,然后解决问题。


function showMsg(){
alert(12);
createXMLHttp();
alert(123);
xmlHttp.open("POST","content.html");
alert(1234)
xmlHttp.onreadystatechange= showMsgCallback;
alert(12345)
xmlHttp.send(null);
}
每一个alert都能正常弹出
但是控制台中显示

81,090

社区成员

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

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