Кнопка «Ссылка» на странице и установите ее как кнопку по умолчанию, она отлично работает в IE, но не в Mozila.

StackOverflow https://stackoverflow.com/questions/938957

  •  06-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

У меня была такая проблема с кнопками ссылок 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.

Другие советы

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top