J'utilise le code suivant pour attacher un événement au bouton d'envoi d'un formulaire:
$('form.manage-users-form').on('click','button.special',function() {
if ($(this).hasClass('selected')){
console.log('This user is already special');
} else {
$(this).parent().find('button').removeClass('selected');
$(this).addClass('selected');
var user_id = $(this).closest("form[id]").val();
console.log('This user is now special');
console.log(user_id);
}
return false;
});
Et vous pouvez voir que j'essaie également d'obtenir l'identifiant du formulaire, mais lorsque je vérifie la console, j'obtiens (an empty string)
. Pourquoi cela et comment puis-je obtenir correctement l'ID du formulaire?
As-tu essayé?
var user_id = $(this).closest("form").attr('id');
L'id de l'élément est un attribut, vous pouvez extraire n'importe quel attribut (y compris l'id) en utilisant .attr ().
.val () est utilisé pour extraire la valeur de l'élément, ce qui n'a aucun sens dans un formulaire.
Plus d'infos:
Essayez plutôt ceci. En supposant qu'il existe un formulaire unique sur la page.
var formid = $('form').attr('id');
Vous aidera.
. val () est utilisé pour obtenir la valeur des éléments du formulaire, pas l'attribut.
Utilisez . Attr () :
var user_id = $(this).closest("form[id]").attr('id');
Vous pouvez également extraire le DOMElement et utiliser du javascript pur pour obtenir l'ID:
var user_id = $(this).closest("form[id]")[0].id;
Essayez ce qui suit:
var user_id = $(this).closest("form").attr("id");
Sera de retour avec une modification dès que je teste cela.