J'utilise plusieurs jeux de cadres sur une page, et chaque jeu de cadres a un bouton associé pour effectuer une publication côté serveur/client. Je voulais changer la touche d'entrée par défaut pour sélectionner le bon bouton et c'était ma solution en utilisant jQuery.Modifier la clé d'entrée avec jQuery?
$("#<%= SearchCustomers.ClientID %>").find(":input").click(function() { $(this).parents("FIELDSET").addClass("default"); }).blur(function() { $(this).parents("FIELDSET").removeClass("default"); });
$("#<%= SearchGroups.ClientID %>").find(":input").click(function() { $(this).parents("FIELDSET").addClass("default"); }).blur(function() { $(this).parents("FIELDSET").removeClass("default"); });
$(document).keypress(function(e) {
if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
$(".default").find(":submit,:button").click();
return false;
}
});
Cela fonctionne parfaitement, mais je cherchais des façons d'améliorer cela. À l'heure actuelle, le code dépend de moi définissant les framesets à "runat = serveur" afin que je puisse accéder à la propriété "ClientID" et injecter l'ID dans mon javascript. Cela rend le code un peu moins réutilisable, donc j'étais curieux de savoir si quelqu'un d'autre avait une meilleure idée ...
Merci pour vos commentaires!
J'aime l'idée de classe, puisque le code est utilisé dans un widget, je ne peux pas garantir qu'il n'y aura pas d'autres FRAMESETS sur la page. Merci! – Zachary
Pour les points bonus, ce serait une excellente expérience pour apprendre à créer des plugins jquery. Ce serait un joli plugin simple, de sorte que le code sur la page serait simplement: $ ('select my fieldsets'). UseAutoEnterKey(); – Clyde
Je vais tenter le coup, ce sera un bon exercice ... Je posterai mes résultats ici ... Zach – Zachary