1. function bufferFormInput() {
  2. const form = document.querySelector('form'); // Get the form element
  3. if (!form) return;
  4. const originalSubmit = form.submit; // Store the original submit function
  5. form.addEventListener('submit', (event) => {
  6. event.preventDefault(); // Prevent default form submission
  7. const inputValues = {}; // Store input values
  8. const inputs = form.elements;
  9. for (let i = 0; i < inputs.length; i++) {
  10. const input = inputs[i];
  11. if (input.type !== 'submit' && input.tagName !== 'LABEL') { // Avoid submit buttons and labels
  12. if (input.value) {
  13. inputValues[input.name] = input.value; // Store input value by name
  14. }
  15. }
  16. }
  17. // Simulate form submission after a delay
  18. setTimeout(() => {
  19. // Process the buffered data
  20. processForm(inputValues);
  21. }, 500); // Adjust the delay as needed (milliseconds)
  22. });
  23. form.submit = (event) => {
  24. event.preventDefault(); // Prevent immediate submission
  25. };
  26. }
  27. function processForm(data) {
  28. // Implement your logic to handle the buffered data here
  29. console.log("Buffered data:", data);
  30. //Example:
  31. // const formData = new FormData();
  32. // for (const key in data) {
  33. // formData.append(key, data[key]);
  34. // }
  35. // fetch('/submit', { method: 'POST', body: formData })
  36. // .then(response => response.json())
  37. // .then(data => console.log(data));
  38. }

Add your comment