I have made a custom admin form which has a drop-down. Based on the option selected in the dropdown, I want to change the value of the text field below using AJAX.
In the above pic, I want to change value of Order State field based on option selected in Order Status field.
Edit/Tab/Main.php:
protected function _prepareForm()
{
/* @var $model \Iksula\Orderitemstatestatus\Model\BlogPosts */
$model = $this->_coreRegistry->registry('orderitemstatestatusmapping');
$isElementDisabled = false;
/** @var \Magento\Framework\Data\Form $form */
$form = $this->_formFactory->create();
$form->setHtmlIdPrefix('page_');
$fieldset = $form->addFieldset('base_fieldset', ['legend' => __('Item Information')]);
if ($model->getId()) {
$fieldset->addField('id', 'hidden', ['name' => 'id']);
}
$fieldset->addField(
'item_state_id',
'select',
[
'label' => __('Item State'),
'title' => __('Item State'),
'name' => 'item_state_id',
'required' => true,
'options' => $this->grid->getItemState(),
'disabled' => $isElementDisabled
]
);
$fieldset->addField(
'item_status_id',
'select',
[
'label' => __('Item Status'),
'title' => __('Item Status'),
'name' => 'item_status_id',
'required' => true,
'options' => $this->grid->getItemStatus(),
'disabled' => $isElementDisabled
]
);
$orderStatus = $fieldset->addField(
'order_status',
'select',
[
'label' => __('Order Status'),
'title' => __('Order Status'),
'name' => 'order_status',
'required' => true,
'options' => $this->grid->getOrderStatus(),
'disabled' => $isElementDisabled
]
);
$fieldset->addField(
'order_state',
'text',
[
'name' => 'order_state',
'label' => __('Order State'),
'title' => __('Order State'),
'required' => true,
'disabled' => true,
]
); $model->setData('order_state', self::getStateValue());
if (!$model->getId()) {
$model->setData('is_active', $isElementDisabled ? '0' : '1');
}
$form->setValues($model->getData());
$this->setForm($form);
return parent::_prepareForm();
}
/**
* Prepare label for tab
*
* @return \Magento\Framework\Phrase
*/
public function getTabLabel()
{
return __('Item Information');
}
public function getStateValue(){
return "value dependent on dropdown select";
}
/**
* Prepare title for tab
*
* @return \Magento\Framework\Phrase
*/
public function getTabTitle()
{
return __('Item Information');
}
/**
* {@inheritdoc}
*/
public function canShowTab()
{
return true;
}
/**
* {@inheritdoc}
*/
public function isHidden()
{
return false;
}
/**
* Check permission for passed action
*
* @param string $resourceId
* @return bool
*/
protected function _isAllowedAction($resourceId)
{
return $this->_authorization->isAllowed($resourceId);
}
public function getTargetOptionArray(){
return array(
'_self' => "Self",
'_blank' => "New Page",
);
}