52 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
| /**
 | |
|  * Copyright © Magento, Inc. All rights reserved.
 | |
|  * See COPYING.txt for license details.
 | |
|  */
 | |
| 
 | |
| define([
 | |
|     'jquery',
 | |
|     'domReady!'
 | |
| ], function ($) {
 | |
|     'use strict';
 | |
| 
 | |
|     /* Form with auto submit feature */
 | |
|     $('form[data-auto-submit="true"]').trigger('submit');
 | |
| 
 | |
|     //Add form keys.
 | |
|     $(document).on(
 | |
|         'submit',
 | |
|         'form',
 | |
|         function (e) {
 | |
|             var formKeyElement,
 | |
|                 existingFormKeyElement,
 | |
|                 isKeyPresentInForm,
 | |
|                 isActionExternal,
 | |
|                 baseUrl = window.BASE_URL,
 | |
|                 form = $(e.target),
 | |
|                 formKey = $('input[name="form_key"]').val(),
 | |
|                 formMethod = form.prop('method'),
 | |
|                 formAction = form.prop('action');
 | |
| 
 | |
|             isActionExternal = formAction.indexOf(baseUrl) !== 0;
 | |
| 
 | |
|             existingFormKeyElement = form.find('input[name="form_key"]');
 | |
|             isKeyPresentInForm = existingFormKeyElement.length;
 | |
| 
 | |
|             /* Verifies that existing auto-added form key is a direct form child element,
 | |
|                protection from a case when one form contains another form. */
 | |
|             if (isKeyPresentInForm && existingFormKeyElement.attr('auto-added-form-key') === '1') {
 | |
|                 isKeyPresentInForm = form.find('> input[name="form_key"]').length;
 | |
|             }
 | |
| 
 | |
|             if (formKey && !isKeyPresentInForm && !isActionExternal && formMethod !== 'get') {
 | |
|                 formKeyElement = document.createElement('input');
 | |
|                 formKeyElement.setAttribute('type', 'hidden');
 | |
|                 formKeyElement.setAttribute('name', 'form_key');
 | |
|                 formKeyElement.setAttribute('value', formKey);
 | |
|                 formKeyElement.setAttribute('auto-added-form-key', '1');
 | |
|                 form.get(0).appendChild(formKeyElement);
 | |
|             }
 | |
|         }
 | |
|     );
 | |
| });
 |