JS中return SomeFunction和不加return的区别

JS中return SomeFunction和不加return的区别

href="http://index.cnblogs.com/Services/Pingback.aspx" rel="pingback" />
 有一个这样的js方法

<script language="javascript">
function  TestFunction()
{
    alert('aaaaaa');

    
return false
;

    alert('bbbbbb');
}
</script>


然后在页面中加入两个asp:button

<asp:Button Runat="server" ID="ButtonReturn" Text="Return Function"></asp:Button>
<asp:Button Runat="server" ID="ButtonNotReturn" Text="Not Return"></asp:Button>


在后台的cs代码中分别给这两个button加上客户端的onclick事件

ButtonReturn.Attributes.Add("onclick""return TestFunction();" );
ButtonNotReturn.Attributes.Add(
"onclick""TestFunction();");


然后在页面上分别点击这两个button, 效果一样吗?

答案是不一样, 我一直都不知道JS中return SomeFunction和不加return调用一个function的区别

第一个button由于加上了return TestFunction();所以执行到js里的return false的时候就不会继续往下执行了,页面当然也不会postback

但是第二个button就奇怪了,return false在这里是无效的,页面会继续postback, 而且是跳过了alert('bbbbbb');这句话来

所以有时候我们在做提交时的一些check的时候, 如果需要调用JS方法, 必须要加上这个return哦

只是我还是不明白加不加这个return到底有什么特殊的含义? 请各位高手不吝赐教!

Feedback

# re: JS中return SomeFunction和不加return的区别   

2005-09-01 20:04 by 铁匠
asp:button解析后生成的HTML应该是:
<INPUT TYPE="submit" >
当事件里面有return 的时候,当返回值为False的时候,就会取消了事件的回调(Click事件)相当于CancleBuble
当没有return 的时候,应该是默认回一个true了

# re: JS中return SomeFunction和不加return的区别   

2005-09-01 20:13 by ╃啤酒泡泡╄
这就象1个按钮写 onclick = "return false" 1个按钮写 onclick = "false" 一样吧.....

# re: JS中return SomeFunction和不加return的区别   

2005-09-01 20:34 by 流浪的狗
但是为什么我不用return直接用TestFunction()来调用的时候
那个js的function只执行了alert('aaaaaa');的方法,
却没有执行alert('bbbbbb');的方法呢?

# re: JS中return SomeFunction和不加return的区别   

2005-09-01 21:21 by 铁匠
因为JS是用的类C的语法,在C里面return的时候,就会跳出函数了.

# re: JS中return SomeFunction和不加return的区别   

2005-09-01 21:29 by 铁匠
在IE里面,事件是通过回调函数实现的(MS的.NET, IE, Win32在事件处理上都是一致的).如果没有return false了,就会接着往下执行,如果返回了一个false就跳出这个回调函数. 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值