当我同时使用Onclick和OnClientClick时,OnClick无法正常工作

11 javascript asp.net

使用此代码,我尝试关闭一个窗口(我正在做的方式工作)但我也有一个被忽略的Onclick事件!

<script type="text/javascript">


            function GetRadWindow() {
                var oWindow = null;
                if (window.radWindow) oWindow = window.radWindow;
                else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
                return oWindow;
            }

            function CloseDialog() {
                GetRadWindow().close();

            }  
Run Code Online (Sandbox Code Playgroud)

ASPX页面:

 <asp:Button ID="Button1" runat="server" Text="Soumettre ce ticket" 
                onclick="Button1_Click"  OnClientClick="CloseDialog();return false;"/>
Run Code Online (Sandbox Code Playgroud)

我的应用程序永远不会进入Button1_click事件,任何人都可以帮我找出原因吗?提前致谢

编辑:为按钮生成的HTML

<input type="submit" id="Button1" onclick="CloseDialog();" value="Soumettre ce ticket" name="Button1"/>
Run Code Online (Sandbox Code Playgroud)

Jus*_*ony 16

这篇文章解释了这个问题.如果要触发服务器事件,则需要在JS中返回true.否则,你必须返回false.

而且,看起来你必须根据以下内容添加UseSubmitBehavior = false:OnclientClick和OnClick不能同时工作?

在看到生成的HTML只有CloseDialog()而不是对Button1_Click的调用之后,这一点尤为明显.此更改将连接到您的onclick结束.

<asp:Button ID="Button1" runat="server" Text="Soumettre ce ticket" 
            onclick="Button1_Click"  OnClientClick="CloseDialog();"  
            UseSubmitBehavior="false"/>
Run Code Online (Sandbox Code Playgroud)


Gaʀ*_*ʀʀʏ 6

我遇到了这个问题并且UseSubmitBehavior="false"几乎使用了诀窍.务必OnClientClick正确设置您的呼叫:

我的代码使用的OnClientClick="return ValidateSearch();"是不正确的.它应该是

<asp:Button ID="keywordSearch" runat="server" Text="Search" TabIndex="1" 
OnClick="keywordSearch_Click" OnClientClick="if (!ValidateSearch()) { return false;};" />
Run Code Online (Sandbox Code Playgroud)

在这里查看来源(并告诉他们谢谢!)

如果设置不正确,OnClick则不会触发该功能.


Eve*_*ert 5

您正在返回false的onclientclick,所以回传之前返回事件。结果,onclick永远不会着火。