J'utilise le plugin ajaxSubmit pour envoyer des formulaires Ajax, mais pour une raison quelconque, ce plugin n'envoie pas de noms/valeurs de input[type=image]
. Alors maintenant j'attrape l'événement submit avant que ajaxSubmit gère le formulaire et j'ai besoin de savoir s'il est possible de savoir quel bouton a été pressé?jQuery submit, comment puis-je savoir quel bouton d'envoi a été enfoncé?
Répondre
$("input .button-example").click(function(){
//do something with $(this) var
});
PS: Avez-vous jQuery var Maîtriser les $? Sinon, vous devez faire ceci:
jQuery.noConflict();
jQuery(document).ready(function(){
jQuery("input .button-example").click(function(){
//do something with jQuery(this) var
alert(jQuery(this));
});
});
si vous wan't le contrôle sur l'événement (envoi du formulaire)
$(document).ready(function(){
$("#formid").submit(function() {
alert('Handler for .submit() called.');
return false;
});
});
me dire quelque chose si cela a fonctionné;)
Cette attrapera selon entrée élément a lancé le soumettre:
$(document).ready(function() {
var target = null;
$('#form :input').focus(function() {
target = this;
alert(target);
});
$('#form').submit(function() {
alert(target);
});
});
Salut, merci pour la suggestion, mais cela n'a pas fonctionné. – newbie
Cela fonctionne mieux si vous faites '$ ('# form: input') .cliquez sur (function() {' avec 'click' au lieu de' focus'. – olofom
Le clic ne sera pas déclenché si vous appuyez sur la touche retour. vous devez utiliser [...]. bind ('click focus', function() {[...]}) [...] – iRaS
$(document).ready(function() {
var clickedVar = null;
$('#form :submit').focus(function() {
clickedVar = $(this).attr("name");
alert(clickedVar);
});
});
Voici ce que je pense serait un exemple plus complet de la façon d'accomplir ce que vous avez demandé. Vous devez remplacer le "# votre-forme" avec votre formulaire d'identification et remplacer "Button One" & "Button Two" avec les valeurs sur vos boutons de formulaire.
$(document).ready(function() {
var target = null;
$('#your-form-id :input').focus(function() {
target = $(this).val();
});
$('#your-form-id').submit(function() {
if (target == 'Button One') {
alert (target);
}
else if (target == 'Button Two') {
alert (target);
}
});
});
Voici comment je l'ai résolu. J'ai été inspiré par certaines des réponses postées ci-dessus mais j'avais besoin d'une approche qui fonctionnerait pour tous mes formulaires puisque je les ai chargés dynamiquement.
J'ai remarqué que le ajaxSubmit avait une option data
qui décrit par le plug-in fait ce qui suit:
Un objet contenant des données supplémentaires qui doivent être soumis en même temps que la forme.
C'est exactement ce dont nous avons besoin.
Je joint le gestionnaire de clic sur mes boutons submit et enregistré l'élément en utilisant jQuery (je préfère cette méthode que l'ajout d'un attribut faux):
$('[type="submit"]').live('click', function(e){
jQuery.data($(this).parents('form')[0], 'submitTrigger', $(this).attr('name'));
});
Et puis dans mon appel ajaxSubmit J'ai construit l'objet de données et envoyé comme ceci:
function dialogFormSubmit(form) {
var data = {}
data[jQuery.data(form, 'submitTrigger')] = true;
$(form).ajaxSubmit({
data: data
});
return false;
}
J'ai construit l'objet de données de cette façon parce que je voulais à se comporter de la même façon que si je l'aurais présenté avec HTML/PHP vanille (nom de l'entrée est la clé le tableau $ _POST). Je suppose que si je voulais rester fidèle à son comportement réel, j'aurais ajouté la valeur ou innerHTML du bouton de soumission, mais je vérifie habituellement si elle est définie de telle sorte que ce n'était pas nécessaire :).
de loin la meilleure réponse que j'ai vue –
C'est ce que j'utilise (légère variation sur les autres, en utilisant mouseup et événements KeyUp au lieu de mise au point):
var submitButton = undefined;
$('#your-form-id').find(':submit').live('mouseup keyup',function(){
submitButton = $(this);
});
$('#your-form-id').submit(function() {
console.log(submitButton.attr('name'));
});
Merci @thaddeusmt. son fonctionne bien – AnNaMaLaI
Cela fonctionne parfaitement. – codesnooker
J'ai trouvé cela très utile. Il couvre le cas de cliquer, et aussi soumettre avec l'index de tabulation et l'espace de frappe ou entrer.Il capture la dernière entrée avant qu'une soumission ne soit faite, et c'est le bouton qui a été soumis, de sorte que vous pouvez avoir plusieurs boutons et vérifier chacun comme une cible pour effectuer quelque chose d'unique.
$('#form input').live('focusin focusout mouseup', function() {
// Add a data attribute to the form and save input as last selected
$('#form').data('lastSelected', $(this));
});
$('#form').submit(function() {
var last = $(this).data('lastSelected').get(0);
var target = $('#button').get(0);
console.log(last);
console.log(target);
// Verify if last selected was our target button
if (last == target) {
console.log('bingo');
return false;
}
});
Salut la réponse ne m'a pas tellement convaincu ici d'apporter une alternative. Ce que je vais faire est de vérifier par JS quel bouton a été pressé.
<head>
<script>
$('body').click(function(event) {
var log = $('#log');
if($(event.target).is('#btn1')) {
log.html(event.target.id + ' was clicked.');
return false;
}else{
if($(event.target).is('#btn2')) {
log.html(event.target.id + ' was clicked.');
return false;
}
}
});
</script>
</head>
<body>
<form id="formulario" method="post">
<div id="log"></div>
<input type="submit" id="btn1" value="Btn 01">
<input type="submit" id="btn2" value="Btn 02">
</form>
</body>
Utilisez cette page pour faire le test Test
Saludos
- 1. Déterminez quel bouton a été enfoncé dans Tkinter?
- 2. Comment savoir quel itinéraire a été sélectionné?
- 3. .Formulaires WinDind si le bouton Quitter a été enfoncé
- 4. Comment savoir quel bouton de formulaire de données a été arrêté lors de l'utilisation de EventToCommand
- 5. C#: Obtenir quel bouton a été enfoncé dans un tableau de boutons # gtk?
- 6. Comment savoir ce qui a été cliqué?
- 7. Comment savoir quel compilateur a été utilisé: g77 ou gfortran
- 8. Comment savoir quel bouton HTML a été poussé dans ma servlet?
- 9. Comment puis-je savoir sur quel bouton de soumission a été cliqué
- 10. Dans la méthode HttpPost, comment puis-je savoir quel bouton de formulaire a été cliqué?
- 11. Si un formulaire HTML a deux boutons <input type = "submit">, comment puis-je savoir sur quel bouton a été cliqué?
- 12. Quel objet a été cliqué lorsqu'un événement a été déclenché?
- 13. Quel bouton a été tapé ... iPhone et Obj-C question
- 14. Google Maps: Savoir à quel marqueur l'événement a été déclenché
- 15. Comment savoir quelle image a été cliquée?
- 16. Comment savoir onglet tabulation a été pressé?
- 17. Comment savoir quelle MKPinAnnotation a été pressée?
- 18. bouton qui a été taraudés vue alerte
- 19. JQuery: Comment déterminer si un bouton radio a été sélectionné?
- 20. capture quel bouton a été cliqué pour provoquer la validation
- 21. Comment savoir si un formulaire a été modifié
- 22. jquery forme type = "fichier" comment savoir quand un fichier a été sélectionné?
- 23. Bouton d'identification de l'iPhone enfoncé
- 24. Comment déterminer quel contrôle a été touché?
- 25. Comment savoir quand un ListView Android a été rempli
- 26. onclick handler sur <a> étiquettes, savoir quel tag a été cliqué
- 27. Comment savoir quel périphérique physique a cliqué sur un bouton en C#?
- 28. ASP.net Zone de texte Entrée bouton enfoncé enfoncé
- 29. Comment savoir si la fenêtre a été fermée par le bouton "x"?
- 30. Comment utiliser jQuery Validate directement, sans le bouton submit?
je quelque chose comme ça. J'ai lié le clic à cet autre bouton et ajouté le champ caché à, alors maintenant le serveur obtient l'information appropriée ... – newbie