jquery click的问题

kbcsy 2012-08-17 12:26:31

<script type="text/javascript">
function test()
{
$("#btnAdd").click();
}
</script>

<asp:Button runat="server" Text="保 存" OnClick="btnAdd_Click" ID="btnAdd" CssClass="input"
OnClientClick="return false" />
<input type="button" value="test" onclick="test();" />
为什么点击test按钮的时候保存按钮的后台方法btnAdd_Click依然会执行?
...全文
148 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
icefisher 2012-08-17
  • 打赏
  • 举报
回复
手册原文:click method:Simulates a click by causing the onclick event to fire.
从上文中所以我推断的是直接执行了onclick事件,而没有执行onclientclick事件,等权威人士解惑
icefisher 2012-08-17
  • 打赏
  • 举报
回复
我可以负责任的说,测试过
[Quote=引用 10 楼 的回复:]

7楼和8楼你们可以负责任的说你们测过?
[/Quote]
abina 2012-08-17
  • 打赏
  • 举报
回复
如果js改成这样。会先弹出 test,然后弹出Check,最后执行服务端OnClick事件,确实不是很理解。
<script type="text/javascript">
function test()
{
alert("test");
$("#btnAdd").click();
}

function Check()
{
alert("Check");
return false;
}
</script>
kbcsy 2012-08-17
  • 打赏
  • 举报
回复
7楼和8楼你们可以负责任的说你们测过?
abina 2012-08-17
  • 打赏
  • 举报
回复
我改成这样:OnClientClick执行一个返回false的函数Check()。结果能弹出对话框,之后也能执行服务端OnClick事件。怀疑是click()把OnClientClick覆盖了?这里应该是和事件注册和触发有关吧?找时间也研究下

<script type="text/javascript">
function test()
{
$("#btnAdd").click();
}

function Check()
{
alert("Check");
return false;
}
</script>

<asp:Button runat="server" Text="保 存" OnClick="btnAdd_Click" ID="btnAdd" CssClass="input"
OnClientClick="javascript:return Check();" />
<input type="button" value="test" onclick="test();" />

-----
icefisher 2012-08-17
  • 打赏
  • 举报
回复
好吧,我也重新在vs2005里试验了下,也是没有执行后台方法的。。。。IE浏览器
wlf535944903 2012-08-17
  • 打赏
  • 举报
回复
我做了一个实验 是没有执行后台方法的...

和你的代码一样

测试环境 火狐浏览器 VS2012 .NET4.5
杰拉尔 2012-08-17
  • 打赏
  • 举报
回复
当你点击<asp:Button runat="server" Text="保 存" OnClick="btnAdd_Click" ID="btnAdd" CssClass="input"
OnClientClick="return false" />会触发onclick 如果return false 触发事件也会中断
杰拉尔 2012-08-17
  • 打赏
  • 举报
回复
你没听明白吗
你直接调用注册事件跳过了onclientclick
kbcsy 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

$("#btnAdd").click(); 是调用注册事件
服务器控件会给INPUT注册一个事件 是先执行ONCLICK在执行这个注册事件你直接调用注册事件所以正方法了。
[/Quote]
我调试过js,的确是先执行的onclientclick,而onclientclick返回false后click不是应该中止执行了吗?为什么还会执行后台方法呢
杰拉尔 2012-08-17
  • 打赏
  • 举报
回复
$("#btnAdd").click(); 是调用注册事件
服务器控件会给INPUT注册一个事件 是先执行ONCLICK在执行这个注册事件你直接调用注册事件所以正方法了。
kbcsy 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

手册原文:click method:Simulates a click by causing the onclick event to fire.
从上文中所以我推断的是直接执行了onclick事件,而没有执行onclientclick事件,等权威人士解惑
[/Quote]
调试看到执行了onclientclick

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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