Кнопка Link на странице и установите ее в качестве кнопки по умолчанию, отлично работают в IE, но не в Mozila - PullRequest
3 голосов
/ 02 июня 2009

У меня есть кнопка ссылки на странице и она установлена ​​в качестве кнопки по умолчанию. Она отлично работает в IE, но не работает в Mozila Firefox. Кто-нибудь знает, как решить эту проблему?

Ответы [ 5 ]

14 голосов
/ 26 апреля 2011

Свойство DefaultButton не поддерживается для использования с LinkButton. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx

Самое простое решение - добавить на страницу фиктивную кнопку с style="display:none", установить ее в качестве кнопки по умолчанию и назначить ей те же обработчики событий, что и LinkButton.

2 голосов
/ 02 июня 2009

У меня была такая проблема с кнопками ссылок FF3 и ASP.NET. Это похоже на ошибку в FF3 (не уверен), но исправленный скрипт приведен ниже:

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;
}

Храните его в конце страницы, чтобы он переопределял метод WebForm_FireDefaultButton, отображаемый в ASP.NET.

1 голос
/ 13 апреля 2012

Моя первая запись переполнения стека, вау: -)

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>

ЯШ:

$(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));
}
0 голосов
/ 13 октября 2011

Я думаю, что это очень просто, просто добавьте событие onkeypress js из текстового поля, где требуется обратная запись

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

надеюсь, это будет полезно.

0 голосов
/ 30 октября 2009

работают только первый раз, когда мы нажимаем ввод в текстовом поле. После добавления текста в текстовое поле и нажатия клавиши «Ввод» кнопка по умолчанию не срабатывает.

...