Advertisement
pcriativa

Untitled

Jun 4th, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict'
  2.  
  3. import axios from 'axios'
  4.  
  5. let token = document.querySelector('meta[name="csrf-token"]')
  6.  
  7. let config = {
  8.     baseURL: 'http://127.0.0.1:8000/api/v1',
  9.     headers: {
  10.         'X-Requested-With': 'XMLHttpRequest',
  11.         'X-CSRF-TOKEN': token.content
  12.     }
  13. }
  14.  
  15. const formSubmit = (elClass = 'j-submit') => {
  16.  
  17.     let route, form, formBtn, data
  18.     let listenerSubmit = document.querySelectorAll('.' + elClass)
  19.  
  20.     // Loop into each find element
  21.     listenerSubmit.forEach((el) => {
  22.  
  23.         // Attach listener for each element
  24.         el.addEventListener('submit', (event) => {
  25.  
  26.             // Prevent default action
  27.             event.preventDefault()
  28.  
  29.             // Get target form
  30.             form = event.target
  31.  
  32.             // Get target form button(make sure that has type submit attribute)
  33.             formBtn = form.querySelector('button[type="submit"]')
  34.  
  35.             // Get target form route stored in form attribute action
  36.             route = form.getAttribute('action')
  37.  
  38.             // Get the formData parameters
  39.             data = new FormData(form)
  40.  
  41.             // Make HTTP request
  42.             axios.post(route, data, config)
  43.                 // Success
  44.                 .then( (res) => {
  45.                     console.log(res)
  46.                 })
  47.                 // Error
  48.                 .catch((error) => {
  49.                     let errorObject = JSON.parse(JSON.stringify(error))
  50.                         errorObject = errorObject.response.data
  51.  
  52.                     console.log(errorObject)
  53.                 })
  54.                 // Finis
  55.                 .then(() => {
  56.                     console.log('finished promise')
  57.                 })
  58.         })
  59.     })
  60. }
  61.  
  62. export default formSubmit
  63.  
  64. window.onload = () => {
  65.     formSubmit()
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement