Je veux changer de code-clé en clé (touche appuyez sur la touche) dans toutes les entrées dans une page.Je veux remplacer Entrer le code-clés avec le code de clé d'onglet. Comment je peux faire cela?
MERCI P>
EDIT 1) P>
Considérez ce code: P>
<div>
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
</asp:RadioButtonList>
<br />
<br />
<asp:TextBox ID="TextBox1" runat="server">3333</asp:TextBox>
<br />
<br />
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
</div>
8 Réponses :
J'espère que cela fonctionne edit p> Essayez ceci http.com : //jsfiddle.net/gumug/ . Jouez avec des sélecteurs pour faire ce travail car je ne connais pas ASP P> $('input,textarea').keypress(function(e){
if(e.keyCode==13) {
$(this).next().focus();
}
});
@Web Developer La deuxième option ne fonctionnera que si l'élément suivant est entré et non rien d'autre que l'étiquette, etc.
La première solution (changer le code-clés) ne fonctionne plus. :-(
Ce code est de remplacer Entrée avec l'onglet Caractère:
Je suppose que j'ai mal compris la question. Vous voulez vous concentrer sur d'autres éléments sur l'onglet Appuyez sur?
Il ne fonctionne pas.Veuillez voir mon édition 1.Je veux que la concentration passe au contrôle suivant
Merci mais dans les boutons radio, il provoque chaque entrée avec le type de radio.Veuillez voir ceci: JSFIDDLE.net/xjhvk
Cela a fonctionné pour moi sauf que cela ne soumet pas le formulaire sur Entrer sur le bouton
$('input').on('keydown',function(e){
var keyCode = e.keyCode || e.which;
if(e.keyCode === 13) {
e.preventDefault();
$('input')[$('input').index(this)+1].focus();
}
});
check fiddle here : http://jsfiddle.net/Pd5QC/
Je pense que ce travail:
J'ai eu un problème similaire, où je voulais appuyer sur + kbd> sur le numpad à l'onglet dans le champ suivant. Maintenant, j'ai publié une bibliothèque que je pense vous aidera. Plusastab : un plugin JQuery pour utiliser la touche NUMPAD Plus comme clé de tabulation équivalente.
BlockQuote> Depuis que vous voulez Entrez kbd> / ↵ kbd>, vous pouvez définir les options. Découvrez quelle touche que vous souhaitez utiliser avec le JQUERY Event.qui Démo . P > activez la fonctionnalité en ajoutant
plus-as-onglet = "true" code> dans les champs de formulaire que vous souhaitez utiliser Entrée-as-tab dans ou un autre élément contenant ces champs de forme. Les boutons radio ne doivent pas être un problème, car ils sont couverts par mon autre bibliothèque, EmulateTab - voir Autonavigation de boutons radio dans cette démo . P> <div plus-as-tab="true">
<!-- all focusable elements inside the <div> will be enabled -->
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<!-- Radio buttons should not be a problem. -->
</asp:RadioButtonList>
</div>
J'aime votre bouchon dans Joel, mais cela ne semble pas porter une attention particulière à Tabindex lors de l'utilisation de la saisie d'un échantillon d'onglet. :(
@Eddegagne: Tabindex CODE> est ignoré par design - voir Skiontab Versus tabindex . Devrait probablement écrire quelque chose de similaire ou de lien vers cette page de Plusastab et d'EmulateTab.
La façon dont je le fais consiste à utiliser jQuery à chacun sur votre sélection et en vous concentrant sur l'élément après que le courant vous apparaisse.
$(document).on('keyup', '.my-input', function (ev) {
if (ev.keyCode == '13') {
var currentInput = this;
var isOnCurrent = false;
$('.my-input').each(function () {
if (isOnCurrent == true) {
$(this).focus();
return false;
}
if (this == currentInput) {
isOnCurrent = true;
}
});
}
});
J'ai créé un plug-in simple jQuery qui résout ce problème. Il utilise le sélecteur ': Tabbable' de JQuery UI pour trouver l'élément "Tabbable" suivant et le sélectionnera.
Exemple d'utilisation: P>
// Simulate tab key when enter is pressed
$('.myElement').bind('keypress', function(event){
if(event.which === 13){
if(event.shiftKey){
$.tabPrev();
}
else{
$.tabNext();
}
return false;
}
});
$(document).ready(function() {
//Objetos con CssClass="EntTab" sustituye el Enter (keycode 13) por un Tabulador (keycode 9)!!
$(".EntTab").bind("keypress", function(e) {
if (e.keyCode == 13) {
var inps = $("input, select"); //add select too
for (var x = 0; x < inps.length; x++) {
if (inps[x] == this) {
while ((inps[x]).name == (inps[x + 1]).name) {
x++;
}
if ((x + 1) < inps.length) $(inps[x + 1]).focus();
}
} e.preventDefault();
}
});
});
Vous pouvez trouver une question similaire à Stackoverflow.com/Questtions/1009808/...
Je pense que cela vaut la peine de constater que changer le comportement des navigateurs par défaut comme celui-là n'est généralement pas une bonne idée. Il va à l'encontre de ce que les utilisateurs s'attendent à ce que la clé soit enfoncée.
@Christofereliassson: Cela dépend de ce que vous ciblez, bien sûr. Si vous pouvez éduquer vos utilisateurs (par exemple, s'ils sont dans la salle), une très bonne amélioration du flux de travail pourrait être une très bonne amélioration de la flux de travail.