11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour a tous

j'ai un bon de commande dans lequel je souhaiterais pouvoir récupérer la valeur du bouton afin de pouvoir l'envoyer par POST
Mais cela ne fonctionne pas je reçois cette erreur lorsque je valide les données avec le bouton commander

Uncaught TypeError: document.getElementByName is not a function

voici la syntaxe du bouton radio et le traitement en ajax
<fieldset>
<div>
<input type="radio" id="huey" Name="promotion" class="promotion" value="huey"checked
>
<label for="huey">Huey</label>
</div>
<div>
<input type="radio" id="dewey" Name="promotion" class="promotion" value="dewey">
<label for="dewey">Dewey</label>
</div>
<div>
<input type="radio" id="louie" Name="promotion" class="promotion" value="louie">
<label for="louie">Louie</label>
</div>
</fieldset>
<script>


function commander(nom, prenom, adresse,detail_livraison,promotion) {
$.ajax({
url: 'mail.php',
type: 'POST',
data: 'nom=' + nom + '&prenom=' + prenom + '&adresse=' + adresse + '&detail_livraison=' + detail_livraison + '&promotion=' + promotion ,
dataType: 'html',
success: function(reponse) {
if(reponse == "1") {
//MonPanier.clearpanier();
afficherpanier();
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
$('#mymodal').modal('show');
}
if(reponse == "0-1") {
$('#mymodal_erreur_1').modal('show');
}
if(reponse == "0-2") {
$('#mymodal_erreur_2').modal('show');
}
if(reponse == "0-3") {
$('#mymodal_erreur_3').modal('show');
}
if(reponse == "0-4") {
$('#mymodal_erreur_4').modal('show');
}
if(reponse == "0-5") {
$('#mymodal_erreur_5').modal('show');
}
}
});
}
$('#commander').click(function() {
var nom = document.getElementById("nom").value;
var prenom = document.getElementById("prenom").value;
var adresse = document.getElementById("adresse").value;
var detail_livraison = document.getElementById("livraison-detail").innerHTML;
var promotion = document.getElementByName("promotion").innerHTML;
commander(nom, prenom, adresse,detail_livraison,promotion,);
});
Hello,

L'erreur que tu obtiens est due à une faute de frappe. La fonction que tu souhaites utiliser s'appelle document.getElementsByName (avec un "s"). De plus, cette méthode renvois un tableau contenant tous les éléments ayant l'attribut name recherché.

Enfin, pour récupérer la valeur d'un bouton radio, c'est la propriété checked qu'il faut utiliser.

Voici un exemple de code pour récupérer l'état des boutons radio de ta page et afficher dans la console lequel est coché :
const promotion = document.getElementsByName('promotion')
for (e of promotion) {
    if (e.checked) console.log(`Elément ${e.id} coché`)
}

Modifié par GuillaumeBauer (13 Aug 2022 - 22:16)
Meilleure solution