Кнопка по умолчанию для ASP.NET (LinkButton) не работает в Google Chrome при наличии нескольких значений по умолчанию - PullRequest
4 голосов
/ 15 ноября 2011

У меня есть страница ASP.NET Webforms, которая имеет несколько кнопок по умолчанию.Во всех браузерах, кроме Google Chrome, они работают должным образом, но в Chrome срабатывает неправильная кнопка по умолчанию.

Я прочитал некоторые распространенные причины этой проблемы, например.неверный HTML (вставка Panel внутри элементов TABLE), но это не так.

Я видел один подобный вопрос по stackoverflow, но не было принято ответа.

Есть ли какое-либо решение дляэта проблема?

Обновление:

Я прочитал на MSDN , что LinkButtons не подходят для установки в качестве кнопок по умолчанию.

"Только кнопки и элементы управления ImageButtonподдерживаются. "

Я думаю, это должно быть проблемой.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2013

Я прочитал на MSDN , что LinkButtons не подходят для установки в качестве кнопок по умолчанию.

"Поддерживаются только элементы управления Button и ImageButton."

0 голосов
/ 15 ноября 2011

Я никогда не сталкивался с таким поведением лично. Свойство DefaultButton всегда работало для меня в Chrome, но есть способ обойти это, если вы не можете его сгладить. Вы можете добавить короткий JavaScript в элементы управления, для которых вы хотите запускать кнопки. Вот не-jQuery метод:

    StringBuilder script = New StringBuilder("");
    script.Append("if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {");
    script.Append("document.getElementById('" + Me.btnToFire.ClientID);
    script.Append("').click();return false;}} else {return true};");
    this.txtControlToAttach.Attributes.Add("onkeydown", script.ToString());

Вот решение jQuery, которое можно использовать для назначения кратных значений в одном и том же блоке (не проверено, поэтому может потребоваться настройка).

function fireButtonClick(ctrl, event) {
    if(event.which || event.keyCode){
        if ((event.which == 13) || (event.keyCode == 13)) {
            ctrl.click();
            return false;
        }
    }
    else {
        return true;
    }
}

$(document).ready(function() {
    $("#<%=this.ControlToAttach.ClientID%>").keypress(function(event) {
        fireButtonClick($("#<%=this.btnToFire.ClientID%>"), event);
    });

    $("#<%=this.ControlToAttach2.ClientID%>").keypress(function(event) {
        fireButtonClick($("#<%=this.btnToFire2.ClientID%>"), event);
    });

    // Just keep adding controls here
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...