2009-06-30 7 views
2

Comme tout le monde le sait, ce bouton par défaut ne fonctionne pas dans FF, seulement IE. J'ai essayé de mettre dans le tag ou dans le et ça ne marche pas. J'ai trouvé un script js pour résoudre ce problème, mais pour une raison quelconque, cela ne fonctionne pas pour moi. Ce script pour un bouton de soumission, je dois l'utiliser pour un LinkButton, qui devrait être le même.jQuery remplacement pour le bouton par défaut ou le lien

Lien:

<div id="pnl"> 
    <a id="ctl00_cphMain_lbLogin" title="Click Here to LogIn" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$cphMain$lbLogin&quot;, &quot;&quot;, true, &quot;Login1&quot;, &quot;&quot;, false, true))">Log In</a> 
    <input name="ctl00$cphMain$UserName" type="text" id="ctl00_cphMain_UserName" /> 
    <input name="ctl00$cphMain$UserName" type="text" id="ctl00_cphMain_UserName1" /> 
    </div> 

<script> 

$(document).ready(function() { 
    $("#pnl").keypress(function(e) { 
     if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { 
      $("a[id$='_lbLogin']").click(); 
      return true; 
     } 
    }); 
}); 

Je sais que je peux remplacer la fonction originale « de WebForm_FireDefaultButton » dans This poste, mais je voulais vraiment obtenir celui-ci pour travailler.

Merci d'avance !!!

Répondre

2

Je trouve la réponse à la fixation linkbuttons ici: http://www.sentia.com.au/2009/03/fixing-the-enter-key-in-aspnet-with-jquery/

$(document).ready(function(){ 
    var $btn = $('.form_submit'); 
    var $form = $btn.parents('.form'); 

    $form.keypress(function(e){ 
     if (e.which == 13 && e.target.type != 'textarea') { 
      if ($btn[0].type == 'submit') 
       $btn[0].click(); 
      else 
       eval($btn[0].href); 
      return false; 
     } 
    }); 
}); 
+0

Larry, ça marche. Je vous remercie. – pyccki

+0

Voir [ma réponse] (http://stackoverflow.com/a/11778517/177710) pour une version mise à jour de ce script qui fonctionne avec du contenu chargé dynamiquement et plusieurs formulaires sur une page. – Oliver

0

Vous pouvez développer votre sélecteur.

$("#pnl > input") 

Qui interceptera alors le clic d'entrée pour toutes les commandes du panneau.

+0

semble bon, mais si some1 souligne le texte dans ce panneau/div et appuyez sur ENTRÉE? – pyccki

1

Inspirée par Larry Flewwelling's answer ou plutôt Michael Cindric's, je suis venu avec une version modifiée et mise à jour de cette extrait de code JavaScript. J'ai documenté des informations plus détaillées sur pourquoi et comment en this blog post, mais permettez-moi de résumer les changements importants:

  1. Works avec un contenu dynamique chargé
  2. Works avec un certain nombre de « formes » sur la même page

et voilà:

$('body') 
    .off('keypress.enter') 
    .on('keypress.enter', function (e) { 
    if (e.which == 13 && e.target.type != 'textarea') { 
     var $btn = $(e.target).closest('.jq-form').find('.jq-form-submit'); 
     if ($btn.length > 0) { 
     if ($btn[0].type == 'submit') { 
      $btn[0].click(); 
     } 
     else { 
      eval($btn[0].href); 
     } 
     return false; 
     } 
    } 
    }); 
Questions connexes