Кнопка «Ссылка» на странице и установите ее как кнопку по умолчанию, она отлично работает в IE, но не в Mozila.
-
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 + "','')");
надеюсь, что это будет полезно.