Bonjour,
Je tente un truc depuis deux jours sans succès. J'écoute un événement en Javascript, celui dans mon input email de keypress (j'ai aussi essayé avec keydown, et keyup mais celui-ci ne semble pas efficient pour ce que je veux faire), afin de saisir par son keycode la touche Entrée, de la basculer en e.preventDefault, de simuler via cette touche un click sur mon bouton qui soumet le formulaire, grâce à des console.log, je sais que la simulation fonctionne, or le formulaire ne veut pas se transmettre. Tout ce que j'ai pu trouver jusque lors sur le net ne sait pas montrer opérant. Je précise que lorsque le bouton est cliqué manuellement, le formulaire est bien transmis.
Je poste un extrait de mon code :
/*Fonction pour envoyer les données en méthode post, et récupérer un id
de commande généré par le back, et le placer dans l'url de la page commande*/
const order = () => {
if (/* Mes constantes pour les regex*/valueFirstName && valueLastName && valueAddress && valueCity && valueEmail) {
orderSofa = JSON.parse(localStorage.getItem('sofaElements'))
productOrder = []
orderSofa.forEach((sofa) => {
productOrder.push(sofa._id)
})
const customerInformation = {
contact : {
firstName : valueFirstName,
lastName : valueLastName,
address : valueAddress,
city : valueCity,
email : valueEmail
},
products : productOrder
}
fetch('http://localhost:3000/api/products/order', {
method : 'POST',
headers : {
'Content-Type' : 'application/json'
},
body : JSON.stringify(customerInformation)
})
.then((resolve) => resolve.json())
.then((promise) => {
let responseServer = promise
const orderDatas = {
contact : responseServer.contact,
orderId : responseServer.orderId,
products : responseServer.products
}
if (orderProducts == null) {
orderProducts = []
orderProducts.push(orderDatas)
localStorage.setItem('orderDatas', JSON.stringify(orderDatas))
}
else if (orderProducts != null) {
orderProducts.push(orderDatas)
localStorage.setItem('orderDatas', JSON.stringify(orderDatas))
}
localStorage.removeItem('sofaElements')
return location.href = 'confirmation.html?id=' + responseServer.orderId
})
}
}
document.body.addEventListener('keypress', (e) => {
if (e.keyCode === '13') {// && valueFirstName && valueLastName && valueAddress && valueCity && valueEmail) {
e.preventDefault()
let keyEnterSubmit = document.querySelector('#order')
keyEnterSubmit.click()
}
})
//// Appel de la fonction order()////
let orderButton = document.querySelector('.cart__order__form')
orderButton.addEventListener('submit', () => {
order()
})
Message édité par Profil supprimé le 13-08-2022 à 16:48:58