weickchen 2008-08-14 20:58
浏览 195
已采纳

难了,有关ajax的执行问题

今天在jsp页面中这样执行了一个js,在这个js中把数据发送给servlet,可是遇到了一个很奇怪的问题:

在jsp页面中的代码是这样的:

1.clearResum
但是js中的clearResum()函数不执行,这个函数的主要功能是把数据发送到后台给servelt处理,也就是没有把数据发送给serlvet。

但是如果改成:
2.clearResum,则xmlHttpRequest.status的返回值始终是0,我已经把项目成功发布了,所以应该不存在tomcat的配置问题。

3.如果把 1 中的代码换成 clearResum,这个js也始终不执行,而把clearResum()函数换成一个简单的test()函数( 这个函数只有一条alert("") )就可以执行。

4.在 1 中,如果把clearResum中的onclick="clearResum()"中的clearResum()函数换成一个简单的test()函数( 这个函数只有一条alert("") )就可以执行。

问题:被搞的很糊涂,非常不理解上述四点描述的问题,特别是第 1 点和第 3点,clearResum()为什么始终不执行,而第 4 点执行后得到的xmlHttpRequest.status的值始终是0?希望哪位兄弟帮忙解答一下,本人感激不尽,先谢谢了!!

[b]问题补充:[/b]
谢谢 ham:
clearResum()
{
send("clearResum?p=1");
}

send()的方法体主要是建立xmlHttpRequest对象并发送数据和调用handleResponse方法处理服务器的返回信息。

还有,您能不能解释下中href 和onclick执行js的区别,谢谢关注!
[b]问题补充:[/b]
嗯,好,谢谢 ham 的解释,回头我再仔细检查和测试下function send()部分.

  • 写回答

2条回答 默认 最新

  • iteye_17163 2008-08-14 23:43
    关注

    中.
    href属性是指链接地址,即浏览器的地址栏,默认是相对定位.如果是类似http://url这种形式,就采用绝对定位的方式.
    由于浏览器的地址栏中可以通过javascript:code的方式直接调用javascript,所以href中如果是javascript:code的形式,那么就会执行code部分的代码.

    onclick='code',这里其实是类似于创建了一个Function的对象,即onclick=new Function('code');这种形式,其中的code就是被执行的javascript代码.

    这两种方法执行javascript区别就是,href中以javascript:code方式调用的是javascript语句,onclick是执行的一个Function的对象.正因为onclick是一个Function对象,所以它可以有返回值,onclick 中所调用的方法如果返回true就证明这个方法的onclick事件是有效的,返回false就证明这个方法的onclick事件是无效的.这里可能看不出效果来,但是如果有一个元素的onmousedown事件返回了false,那么它的onclick事件将永远不会执行.因为onclick是需要mousedown并且mouseup才会成功.

    在href和onclick同时存在的时候,会先调用onclick方法,如果onclick方法返回值为true或者无返回值的话就会继续执行href中的内容.
    javascript:void(0);这句话的原理我还不清楚,不过它的作用就是什么也不执行.

    上面只是个人的理解,如果讲错了,多多包涵.

    在你的代码中,onclick和href执行的效果应该是一样的.感觉错误应该是出现在send方法之中.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况