从OnClientClick javascript函数返回true后执行OnClick代码后面的方法

时间:2017-08-24 16:12:33

标签: javascript asp.net

我有这种情况。这是前端asp:按钮组件。

<asp:Button ID="btnNewsAdd" runat="server" Text="Edit current news item" OnClientClick="return Confirm();" OnClick="btnNewsAdd_Click" UseSubmitBehavior="false"/>

这是Javascript:

<script type="text/javascript">
function Confirm() {
   var result = window.confirm('Are you sure?');
      if (result == true)
         return true;
      else
         return false;          
}
</script>

用户应点击&#34; btnNewsAdd&#34;按钮,应该触发Javascript并弹出一个带有是或否选项的对话框。单击是将返回true,否则将返回false。如果返回true,则返回后端的ASP.Net方法:btnNewsAdd_Click应该触发。它工作到15分钟前。在调试时,JS会跳过返回true行,并将headinto javascript文件我自己没有创建;但是,后端方法不会触发。

我注意到在Sources部分,HTML转换为下面的内容。可以看到OnClick和OnClientClick自动合并到OnClick中。这是自动的,我不知道这可能是问题还是其中的一部分。

<input type="button" name="ctl00$MainContent$btnNewsAdd" value="Edit current news item" onclick="return Confirm();__doPostBack(&#39;ctl00$MainContent$btnNewsAdd&#39;,&#39;&#39;)" id="MainContent_btnNewsAdd" />

我真的花了一整天的时间试图绕过它。在某个时刻它正在工作,它只是停止工作而没有改变任何东西。任何建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

正如雷克斯所指出的那样,正如这个话题中的几个人所解释的那样:See other thread

将按钮更改为:

<asp:Button ID="btnNewsAdd" runat="server" Text="Edit current news item" OnClick="btnNewsAdd_Click" OnClientClick="if (!Confirm()) return false;"/>

和Javascript:

<script type="text/javascript">
function Confirm() {
   return confirm("Are you sure?");         
}
</script>

问题解决了。