Fazer a ligação Botão na página e defini-lo como botão padrão, funcionam bem no IE, mas não no Mozila
-
06-09-2019 - |
Pergunta
Eu tenho um botão de link na página e defini-lo como botão padrão, ele funciona bem no IE, mas não funciona no Mozila Firefox. Alguém tem alguma idéia de como resolver esse problema?
Solução
Eu tive esse tipo de problema com FF3 e ASP.NET linkbuttons. Este parece ser um bug com FF3 (não tenho certeza), mas o script que fixa é dado abaixo:
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;
}
Mantenha-o no final da página para que ele substitui o método WebForm_FireDefaultButton
proferida pelo ASP.NET.
Outras dicas
A propriedade DefaultButton
não é suportado para uso com um LinkButton
. http://msdn.microsoft.com/en-us/ biblioteca / system.web.ui.webcontrols.panel.defaultbutton.aspx
A solução mais fácil é incluir um botão de manequim na sua página com style="display:none"
, defina-o como o DefaultButton e dar-lhe os mesmos manipuladores de eventos como o seu LinkButton.
A minha primeira gravação Stack Overflow, wow: -)
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));
}
trabalho somente nós de imprensa primeira vez entrar na caixa de texto. Depois de adicionar algum texto na caixa de texto e, em seguida, pressionar enter, botão padrão não irá fogo.
Eu acho que é muito simples, basta adicionar js onkeypress caso de caixa de texto onde é exigido de volta post.
txtUserName.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13)
__doPostBack('" + btnLogin.UniqueID + "','')");
Esperamos que este será útil.