<asp:Button>使用UseSubmitBhaviour=false属性时无法触发'onclick'事件

4
以下代码在我的工作环境中运行良好。但是对于我的客户,“单击”事件不起作用。如果我们从页面中删除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)。他们的浏览器是否更改了任何设置?提前感谢...

1个回答

1
是的,可能会有由未“更新”的服务器端.NET框架引起的客户端问题。
例如:http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx 您应该向客户要求页面的HTML源代码。
确保:
  • 它包含对onclick事件中的this.disabled=true连接到__dopostback的调用
  • 使用相同浏览器在工作环境中生成的__dopostback函数的代码与之相同
  • 如果不同,则您的客户可能错过了一些更新

+1 感谢jbl。这对我真的很有帮助。我不打算更改浏览器定义文件。我只是要删除“Usesubmitbehaviour”和“OnClientClick”。但我会在我的下一个项目中使用你的修复方法。再次感谢。 - Suresh
对于ie8和ie10,在我们的环境中上述代码可以正常工作。但是在我的客户那里,他使用的是ie8和ie10,却无法正常工作。我不知道确切的原因。请帮助我。 - Suresh
@Suresh,这可能是兼容模式的问题,是否已激活? - jbl
他们的浏览器正在兼容模式下运行。这是一个问题吗? - Suresh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接