【问题标题】:<asp:Button> doesn't fire 'onclick' event with using UseSubmitBhaviour=false<asp:Button> 不使用 UseSubmitBhaviour=false 触发 'onclick' 事件
【发布时间】:2013-02-14 09:49:03
【问题描述】:

以下代码适用于我的工作环境。但对于我的客户,'Onclick' 事件不会触发。如果我们从页面中删除 UseSubmitBehavior='false'OnclientClick 事件,它们就可以正常工作。我的问题是这个问题的原因是什么。是因为浏览器设置还是什么?我不知道为什么它不射击。请帮帮我。

 <asp:ToolkitScriptManager  ID="ToolkitScriptManager1" AsyncPostBackTimeout="10000"
    runat="server">
</asp:ToolkitScriptManager>
<asp:Panel ID="Panel1"  runat="server">
    <table>
        <tr>
            <td align="left">
                UserName:
                <asp:TextBox ID="tbUserName" Width="150px" runat="server" ></asp:TextBox>
                <asp:RequiredFieldValidator ID="rfvUser" runat="server" ErrorMessage="Required" ControlToValidate="tbUserName"
                    ValidationGroup="validate"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td align="left">
                Password:
                <asp:TextBox Width="150px" ID="tbPassword" 
                    runat="server" TextMode="Password" ></asp:TextBox>
                <asp:RequiredFieldValidator ID="rfvPassword" runat="server" ErrorMessage="Required"
                    ControlToValidate="tbPassword" ValidationGroup="validate"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr id="rowCaptcha" runat="server">
            <td>
                <table style="margin-left: 30px">
                    <tr>
                        <td>
                            <telerik:radcaptcha errormessage="Please enter valid code" validatedtextboxid="tbRadcaptcha"
                                captchatextboxlabelcssclass="textBox" id="RadCaptcha1" captchaaudiolinkbuttontext=""
                                enablerefreshimage="true" captchaimage-renderimageonly="true" validationgroup="group"
                                runat="server"></telerik:radcaptcha>

                        </td>
                    </tr>
                    <tr>
                        <td align="left">
                            <asp:Label ID="Label5" runat="server"  Text="Type the above code in text box"></asp:Label>
                        </td>
                    </tr>
                    <tr>
                        <td align="left">
                            <asp:TextBox runat="server" ValidationGroup="group" ID="tbRadcaptcha"></asp:TextBox>
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
        <tr>
            <td align="left">
                <br />
                <asp:Button ID="btLogin" runat="server" Style="margin-left: 80px" UseSubmitBehavior="false"
                    OnClientClick="this.disabled=true" ValidationGroup="group" Text="Login" OnClick="btLogin_Click" />
            </td>
        </tr>
    </table>
</asp:Panel>

编辑: 此代码在我们本地环境中适用于 ie8、ie9 和 ie10。但是对于我的客户来说,使用 ie8 和 ie10(他们不使用 ie9)的人不起作用。他们的浏览器是否有任何设置更改?提前谢谢...

【问题讨论】:

    标签: javascript asp.net onclick aspbutton


    【解决方案1】:

    是的,可能存在由不是“最新”的服务器端 .NET 框架引起的客户端问题。

    例如:http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

    您应该向您的客户索取页面的 HTML 源代码。

    确保:

    • 它包含对 __dopostback 的调用,并从 onclick 事件连接到您的 this.disabled=true
    • __dopostback 函数的生成代码在您使用相同浏览器的工作环境中是相同的
    • 如果不同,您的客户可能错过了一些更新

    【讨论】:

    • +1 谢谢jbl。它对我真的很有帮助。我不会更改浏览器定义文件。我只是要删除“Usesubmitbehaviour”和“OnClientClick”。但我会在我的下一个项目中使用你的修复。再次感谢。
    • 对于 ie8 和 ie10,上面的代码在我们的环境中运行良好。但是使用ie8和ie10的我的客户不起作用。我不知道确切的原因。请帮帮我。
    • @Suresh 这可能是兼容模式的问题,是否已激活?
    • 是的,他们的浏览器以兼容模式运行。这是个问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    • 2010-10-21
    • 1970-01-01
    相关资源
    最近更新 更多