1. function tokenizeAndValidateForm(formElement) {
  2. const values = {};
  3. // Iterate through form elements
  4. for (let i = 0; i < formElement.elements.length; i++) {
  5. const element = formElement.elements[i];
  6. const name = element.name;
  7. let value = element.value;
  8. // Basic validation based on element type
  9. if (element.type === 'text' || element.type === 'email') {
  10. value = value.trim(); // Remove leading/trailing whitespace
  11. if (value === "") {
  12. alert(`Field '${name}' cannot be empty.`);
  13. element.focus(); // Focus on the invalid field
  14. return false; // Stop processing
  15. }
  16. //Simple email validation
  17. if (element.type === 'email' && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
  18. alert(`Invalid email format for field '${name}'.`);
  19. element.focus();
  20. return false;
  21. }
  22. } else if (element.type === 'number') {
  23. value = parseInt(value, 10);
  24. if (isNaN(value)) {
  25. alert(`Invalid number format for field '${name}'.`);
  26. element.focus();
  27. return false;
  28. }
  29. if (element.min !== undefined && value < element.min) {
  30. alert(`Number for field '${name}' must be at least ${element.min}.`);
  31. element.focus();
  32. return false;
  33. }
  34. if (element.max !== undefined && value > element.max) {
  35. alert(`Number for field '${name}' must be at most ${element.max}.`);
  36. element.focus();
  37. return false;
  38. }
  39. } else if (element.type === 'password') {
  40. value = value.trim();
  41. if (value === "") {
  42. alert(`Field '${name}' cannot be empty.`);
  43. element.focus();
  44. return false;
  45. }
  46. }
  47. // Handle other types as needed (select, textarea, etc.)
  48. else {
  49. //For other types, just store the value
  50. value = value.trim();
  51. }
  52. values[name] = value;
  53. }
  54. return values; // Return the validated data
  55. }
  56. // Example usage (assuming you have a form with id "myForm")
  57. document.addEventListener("DOMContentLoaded", function() {
  58. const form = document.getElementById("myForm");
  59. if (form) {
  60. form.addEventListener("submit", function(event) {
  61. event.preventDefault(); // Prevent default form submission
  62. const validatedData = tokenizeAndValidateForm(form);
  63. if (validatedData) {
  64. console.log("Form data:", validatedData);
  65. // Process the validated data (e.g., send to server)
  66. }
  67. });
  68. }
  69. });

Add your comment