3

I have a link button on the page and set it as default button, It works fine in IE but not working in Mozila Firefox. Does anybody have any clue how to resolve this issue?

4

5 回答 5

14

DefaultButton不支持将该属性与LinkButton. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx

最简单的解决方案是在页面上包含一个虚拟按钮style="display:none",将其设置为默认按钮,并为其提供与 LinkBut​​ton 相同的事件处理程序。

于 2011-04-26T09:36:20.980 回答
2

I had this kind of issue with FF3 and ASP.NET linkbuttons. This seems to be a bug with FF3 (not sure), but the script that fixed is given below:

var __defaultFired = false;

function WebForm_FireDefaultButton(event, target) {
    var element = event.target || event.srcElement;

    if (!__defaultFired && event.keyCode == 13 && !(element && (element.tagName.toLowerCase() == "textarea"))) {
        var defaultButton;

        if (__nonMSDOMBrowser)
            defaultButton = document.getElementById(target);
        else
            defaultButton = document.all[target];

        if (defaultButton) {
            if(typeof(defaultButton.click) != "undefined")
                defaultButton.click();
            else
                eval(unescape(defaultButton.href.replace("javascript:", "")));

            event.cancelBubble = true;

            if (event.stopPropagation) event.stopPropagation();
            return false;
        }
    }
    return true;
}

Keep it at the end of the page so that it overrides the WebForm_FireDefaultButton method rendered by ASP.NET.

于 2009-06-02T11:21:22.253 回答
1

我的第一篇 Stack Overflow 写的,哇 :-)

ASP.NET:

<asp:Panel runat="server" DefaultButton="lbHello">
    First name: <asp:TextBox runat="server" ID="txtFirstName" />
    <asp:LinkButton ID="lbHello" Cssclass="button" runat="server" Text="Click me" OnClick="lbHello_Click" />
</asp:Panel>

js:

$(document).ready(function () { $('.button').eventClick(); });

$.fn.eventClick = function() {
    function eventClick(a) { 
            if (a && typeof (a.click) == 'undefined') {
                a.click = function () {
                    var result = true;
                    if (a.onclick) result = a.onclick();
                    if (typeof (result) == 'undefined' || result) {
                        eval(a.getAttribute('href'));
                    }
                }
            }
        }
        return eventClick($(this).get(0));
}
于 2012-04-12T22:00:33.367 回答
0

我认为它非常简单,只需添加需要回发的文本框的 onkeypress js 事件。

txtUserName.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13)
 __doPostBack('" + btnLogin.UniqueID + "','')");

希望这会有所帮助。

于 2011-10-13T14:01:53.050 回答
0

仅在我们第一次在文本框中按 Enter 时起作用。在文本框中添加一些文本然后按 enter 后,默认按钮将不会触发。

于 2009-10-30T07:16:42.110 回答