Nous essayons de faire une approche générique pour un logiciel que nous développons des liens dans des champs de formulaire.
jusqu'à présent si bon, mais nous courons dans un cas de bord qui empêche la soumission d'un formulaire / champ Cela a un autre gestionnaire attaché à ce sujet. p>
voici le boîtier d'utilisation (condensé): p>
HTML: P>
$('#field1').keypress(function (event) {
if (event.which == 13) {
console.log("enter pressed");
//return false; only if needed
}
});
$( "#link" ).click(function() {
var e = jQuery.Event('keypress');
e.which = 13; // #13 = Enter key
$("#field1").focus();
$("#field1").trigger(e);
})
3 Réponses :
Vous pouvez engager les gestionnaires inconnus à l'aide de Unbind ('Soumettre') code> puis utilisez Soumettre () code> Comme suit.
Vous devez séparer le gestionnaire de formulaire de l'entrée et cliquez sur les gestionnaires.
$( "#link" ).click(function() {
formHandler();
});
Que se passe-t-il lorsque vous appuyez sur la touche Entrée, si l'entrée est à l'intérieur d'un formulaire, le formulaire est soumis. Ceci est le comportement par défaut. Lorsque vous simulez une touche appuyez sur une touche, vous devez faire la même chose, à moins que le comportement par défaut ne soit empêché.
$('#field1').keypress(function (event) {
if (event.which == 13) {
console.log("enter pressed");
// event.preventDefault(); if needed
}
});
$( "#link" ).click(function() {
var e = jQuery.Event('keypress');
e.which = 13; // #13 = Enter key
$("#field1").focus();
$("#field1").trigger(e);
var form=$("#field1").closest("form");
if(form&&!e.isDefaultPrevented()) form.submit();
})
Vous voulez donc appuyer sur la touche Entrée et cliquer sur le lien pour appeler le gestionnaire inconnu?
Je ne comprends pas bien ce que vous cherchez. Vous dites que vous voulez que le formulaire soumet à chaque fois que quelqu'un clique sur "Entrée" mais sans utiliser Soumettre ()?
Non, cliquez sur "Cliquer pour soumettre" doit soumettre le formulaire comme poussant "Entrée". Essayez de remplir «FOO» et cliquez sur le lien. Cela devrait avoir le même effet que de remplir "foo" et frapper une entrée.
@ Unicorn80 - Ils ont tous les deux le même effet pour moi. Que je clique sur le bouton / lien ou frappez
entrez code>, le formulaire est soumis.@Marcus quel navigateur? En cliquant sur le lien ne soumet pas le formulaire en chrome (pour moi au moins)