Tôi đang sử dụng đoạn mã sau cho biểu mẫu.
chức năng công khai buildForm(mảng $form, FormStateInterface $form_state) {
$region_options = tĩnh::getFirstDropdownOptions();
$form['vvv_region'] = [
'#type' => 'chọn',
'#title' => $this->t('trường chọn vùng'),
'#options' => $region_options,
'#empty_option' => t('- Chọn khu vực -'),
'#ajax' => [
'gọi lại' => '::myAjaxCallback',
'vô hiệu hóa lấy nét lại' => SAI,
'sự kiện' => 'thay đổi',
'trình bao bọc' => 'đầu ra chỉnh sửa',
'tiến bộ' => [
'gõ' => 'đập',
'tin nhắn' => $this->t('Đang xác minh mục nhập...'),
],
]
];
$region_sered = $form_state->getValue('vvv_region');
$city_options = static::getSecondDropdownOptions($region_selected);
$form['đầu ra'] = [
'#type' => 'chọn',
'#title' => $this->t('trường chọn thành phố'),
'#options' => $city_options,
'#prefix' => '<div id="edit-output">',
'#suffix' => '</div>',
'#empty_option' => t('- Chọn thành phố -'),
'#default_value' => '',
'#ajax' => [
'gọi lại' => '::cityAjaxCallback',
'vô hiệu hóa lấy nét lại' => SAI,
'sự kiện' => 'thay đổi',
'trình bao bọc' => 'thành phố chỉnh sửa',
'tiến bộ' => [
'gõ' => 'đập',
'tin nhắn' => $this->t('Đang xác minh mục nhập...'),
],
]
];
$city_select = $form_state->getValue('đầu ra');
$suburb_options = static::getSuburbDropdownOptions($city_select);
$form['sur'] = [
'#type' => 'chọn',
'#options' => $suburb_options,
'#prefix' => '<div id="edit-city">',
'#suffix' => '</div>',
'#empty_option' => t('- Chọn suurb -'),
'#default_value' => mảng(''),
];
trả về biểu mẫu $;
}
hàm công khai myAjaxCallback(mảng &$form, FormStateInterface $form_state) {
$region_sered = $form_state->getValue('vvv_region');
$city_options = static::getSecondDropdownOptions($region_selected);
nếu ($form_state->getErrors()) {
\Drupal::messenger()->addError($region_sered);
$form_state->setRebuild();
}
$form['outpout']['#options'] = $city_options;
trả về $form['đầu ra'];
}
chức năng công cộng cityAjaxCallback(mảng &$form, FormStateInterface $form_state) {
$city_select = $form_state->getValue('đầu ra');
$sur_data = static::getSuburbDropdownOptions($city_select);
nếu ($form_state->getErrors()) {
\Drupal::messenger()->addError($city_select);
$form_state->setRebuild();
}
$form['sur']['#options'] = $sur_data;
trả về $form['sur'];
}
Khi biểu mẫu được gửi, tôi gặp lỗi sau.
Một lựa chọn không hợp lệ đã được xác định. Vui lòng liên hệ với quản lý.
Có gì sai với mã tôi đang sử dụng?