Eh bien, j'essaie de rendre les URL ASP.NET à la recherche conviviale, comme il a été expliqué in this question. J'ai donc créé un formulaire ASP.Net, et placé asp:textbox
et asp:button
dessus. J'ai également défini l'attribut onclientclick
pour appeler la fonction JS qui accède à l'URL intelligente en définissant windows.location.href
. Dans Firefox, cela fonctionne bien, mais dans IE et Opera, le navigateur navigue d'abord vers une URL intelligente, puis ferme la connexion et envoie une publication à l'aide d'une action de formulaire asp.net.Comment définir le bouton html par défaut pour le formulaire ASP.Net?
J'ai essayé de le résoudre en utilisant le bouton html au lieu du serveur. Cela fonctionne, mais le problème est qu'il ne peut pas être défini par défaut pour le formulaire asp.net. Donc 'si l'utilisateur clique dessus, il fait son travail. Mais si l'utilisateur appuie simplement sur Entrée lorsque le formulaire est actif, le formulaire effectue son action, donc le bouton n'est pas pressé et la réécriture de l'URL JS ne se produit pas. Alors, comment puis-je résoudre ce problème?
Mon JS ressemble à ceci:
function searchRedirect() {
var query = $get('colSearch');
window.location.href = 'colSearch?q=' + query.value;
return false;
}
et Search.aspx j'ai
<form id="MainForm" runat="server" method="get">
<asp:TextBox id="colSearch" runat="server" Width="615px" CssClass="searchLine"></asp:TextBox>
<input id="Button1" type="button" value="Search!" onclick="searchRedirect();" class="search" />
J'ai aussi essayé avec asp:button
:
<form id="MainForm" runat="server" method="get" defaultbutton="submitReqBtn">
<asp:TextBox id="colSearch" runat="server" Width="615px" CssClass="searchLine"></asp:TextBox>
<asp:Button runat="server" Text="Search!" ID="submirReqBtn"
onclientclick="searchRedirect();" CausesValidation="False"
EnableViewState="False" UseSubmitBehavior="False"></asp:Button>
</form>
J'ai essayé cela avec 'asp: button' - le navigateur ferme les connexions. J'ai ajouté un exemple de code dans la question - peut-être que je me suis trompé dans mon code. – flashnik
Eh bien, j'ai ajouté 'return false;' à onclientclick dans la description du bouton afin qu'il ressemble à 'onclientclick =" searchRedirect(); retour faux; "' et tout a commencé à fonctionner. Merci! – flashnik