Here we will learn, how to validate admin form using ajax in Magento2
1) Create a getValidationUrl() function in your admin form Edit.php Block for example.
Here is Block: Webkul/FormValidate/Block/Adminhtml/CustomForm/Edit.php
<?php
namespace Webkul\FormValidate\Block\Adminhtml\CustomForm;
class Edit extends \Magento\Backend\Block\Widget\Form\Container
{
/**
* Block group name
*
* @var string
*/
protected $_blockGroup = 'Webkul_FormValidate';
/**
* @param \Magento\Backend\Block\Widget\Context $context
* @param \Magento\Framework\Registry $registry
* @param array $data
*/
public function __construct(
\Magento\Backend\Block\Widget\Context $context,
array $data = []
) {
parent::__construct($context, $data);
}
/**
* @return void
*/
protected function _construct()
{
parent::_construct();
}
/**
* Retrieve URL for validation
*
* @return string
*/
public function getValidationUrl()
{
return $this->getUrl('/*/validate', ['_current' => true]);
}
}
2) Create Validation Controller : Webkul/FormValidate/Controller/Adminhtml/CustomForm/Validate.php
<?php
namespace Webkul\FormValidate\Controller\Adminhtml\CustomForm;
class Validate extends \Magento\Backend\App\Action
{
/**
* @var \Magento\Framework\Controller\Result\JsonFactory
*/
protected $resultJsonFactory;
/**
* Constructor
*
* @param \Magento\Backend\App\Action\Context $context
* @param \Magento\Framework\Registry $coreRegistry
* @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
* @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
*/
public function __construct(
\Magento\Backend\App\Action\Context $context,
\Magento\Framework\Registry $coreRegistry,
\Magento\Framework\View\Result\PageFactory $resultPageFactory,
\Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory,
) {
parent::__construct($context);
$this->resultJsonFactory = $resultJsonFactory;
}
/**
* @return \Magento\Framework\Controller\ResultInterface
*/
public function execute()
{
$response = new \Magento\Framework\DataObject();
$response->setError(false);
$response->setMessage(
__('Validate Successfully.')
);
return $this->resultJsonFactory->create()->setJsonData($response->toJson());
}
}
Be the first to comment.