J'essaie d'envoyer mon formulaire au serveur. J'ai utilisé pug pour créer mon formulaire, puis je le soumets via ajax. J'ai écrit un journal de console de test pour voir si le formulaire est soumis et si le message n'est pas enregistré. Qu'est-ce qui ne va pas?
Cependant, tout ce que j'ai saisi sur le formulaire apparaît dans l'url après?. Aussi, pourquoi aucune demande de publication n'est-elle effectuée?
Mon formulaire: -
$(document).ready( function () { getAllProducts(); $('#newProductForm').submit( function(e) { e.preventDefault(); let arr = $(this).serializeArray(); console.log("Form values: "+ arr); $.post({ url: '/admin/add', type: 'POST', }).done( response => { resetProductTable(); console.log("Admin add is being requested!") }) }) })
Mon code JS pour soumettre le formulaire: -
form(id="newProductForm") p label(for="title") Product Title: input(type="text" name="title" id="title" placeholder="Product Title" required autofocus) p label(for="description") Product Description: input(type="text" name="description" id="description" placeholder="Product Description" required autofocus) p label(for="Price") Price: input(type="price" name="price" id="price" placeholder="Set Price" required autofocus) p label(for="Price") Shipping Charges: input(type="text" name="shippingCharge" id="shippingCharge" placeholder="Set Shipping Charges" required autofocus) p label(for="Price") Shipping Time: input(type="text" name="shippingTime" id="shippingTime" placeholder="Set Shipping Time" required autofocus) p label(for="quantity") Total Quantity: input(type="text" name="quantity" id="quantity" placeholder="Set Total Quantity" required autofocus) p label(for="tags") Tags (Seperated by comma): input(type="text" name="tags" id="tags" placeholder="Set Price" required autofocus) //Add drag and drop image upload feature soon p button(type="submit" id="addProductButton") Add New product
3 Réponses :
Votre bouton d'envoi est défini comme
p input(type="submit" id="addProductButton") Add New product
et je pense qu'il devrait être un
, que vous pourrait être stylé comme un bouton à votre goût:
p button(type="submit" id="addProductButton") Add New product
ajoutez également e.preventDefault ()
en haut de votre fonction.
Je pense que votre formulaire ne se soumet pas, non? Vous pouvez utiliser cette méthode, je pense que votre problème devrait être de le résoudre.
$(document).submit('#newProductForm'', function (e) { )}
Ça a marché. Merci beaucoup! Puis-je savoir ce qui causait le problème?
Oui, bien sûr, nous soumettons le formulaire mais chargeons en fait notre document. document signifie la page entière, vous comprenez?
changez l'événement de soumission de déclenchement en
$(document).on('click', '#addProductButton', ()={ ... }):
cet événement lie directement avec le bouton sumbit à la place.
Vous voulez dire que votre fonction est appelée par la poste n'est pas demandée? Et que voyez-vous dans l'onglet réseau de la console développeur?
Il n'y a rien sur la console
Cependant, je peux voir les données que j'ai entrées enregistrées dans la zone URL. J'ai un comportement étrange