很急,javascript中onclick真假问题?

来源:百度知道 编辑:UC知道 时间:2024/06/26 05:57:44
急,请问javascript中onclick真假问题?

<input type=checkbox value="确定" onclick="return true;alert(this.nodeName);">
<input type=checkbox value="确定" onclick="return false;alert(this.nodeName);">

我把return true和return false如果都放在alert前面的话,为什么都不会弹出窗口了?

好像把return true和return false放在alert前面的话,后面这个alert整个都被忽略掉了,是怎么回事?

如果把return true和return false都放在alert 的后面的话,那么就会弹出后才返回true和false

第二个问题:

<input type=button value="确定" onclick="return true;window.location.href('dd.html');">

我把return true放在window.location的前面,是先返回真,再转向到dd.html,为什么只执行了return true

而window.location不执行,怎么回事?

第三个问题:

<input type=button value="确定" onclick="return false;window.location.href('dd.html');">

我设置成return false,说明onclick返回的是false,那么保持原来的按钮,不转向.可是我把return false放到

window.location后面,如:

第一个问题:return之后,不管是true还是false或是其它什么,后面的同级代码都不会执行,因为已经终止了
第二个问题:同上
第三个问题:因为先执行了return前面的语句,return根本就没来得及执行

你的错误在于你对return 的理解,return不单单是一条语句,实际上,它还是从子程序或是流程中转出到主程序或是调用程序的作用。

也就是说,如果在子程序中如果遇到return则直接返回到主程序中,对于子程序以后的语句当然就没有机会执行了!也就是说,如果你将return语句放在了alert函数之前,不管返回值是真是假,还是一个具体的数据,程序都转到了主程序中,因而不是再执行alert函数。而放在后面,当然要先执行alert函数再执行return返回至主程序中。

而redirect等地址导向语句,如:window.location.href=“”等等,都是页面级的东西,也就是说,其执行后直接对页面进行了重新的定位。此时,页面内的所有内容已经变化。当然,不要说是return等语句了,就是现圾一些导向语句(地址重定位)也因页面已经变化而不启任何作用。而不是说来不及执行,因为它只能用当前的网页再去执行,好比是重新开始。正如你在干某一项工作,让你转向另一个工作时,那么你第一项工作的所有未完成的内容都不是你的职责范畴了!所以它根本不会转向。

由此可以看出你对Javascript的理解并不够深。并没有作出你相应的程序!首先告诉你的是,onclick后面可以是语句(当然是单语句),也可以是语句块(多条语句)就算是结构也是可以执行的!但要分析问题,你的第二个功能是不可能实现的。让其转向后返回一个值是不可能的!

建议你再看一下关于javascript的跨页面传递参数值的内容。