Khi tôi tạo hộp chọn tiêu chuẩn bằng API biểu mẫu Drupal 7, giá trị đầu tiên (cũng là giá trị được chọn trên 'biểu mẫu trống' mới) là <option selected="selected" value="">- Select -</option>
. Giá trị này không được chỉ định trong định nghĩa biểu mẫu và tôi không thay đổi biểu mẫu. (Điều này tốt)
Tuy nhiên, khi tôi tạo hộp chọn thứ hai phụ thuộc vào lần sử dụng đầu tiên #states
, nó không có bất kỳ giá trị mặc định nào như vậy. Đối với các hình thức phức tạp với nhiều phụ thuộc, sự không nhất quán này là một vấn đề.
Một định nghĩa mẫu ví dụ như sau:
function sb_quickquote_test_form($form, &$form_state, $post=array()) {
$fields['first_select'] = array(
'#type' => 'select',
'#title' => 'First select box',
'#options' => Array('First', 'Second', 'Third'),
'#required' => TRUE,
);
$fields['dependent_delect'] = array(
'#type' => 'select',
'#title' => 'Dependent select box',
'#options' => Array('Something', 'Another thing', 'Something else', 'Final thing'),
'#states' => Array(
'visible' => Array('select[name=first_select]' => array('value' => '2')),
'required' => Array('select[name=first_select]' => array('value' => '2')),
),
);
$fields['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $fields;
}
Trong ví dụ đơn giản này, chúng tôi có 2 hộp chọn và nút gửi. Hai hộp chọn được hiển thị là:
______________ ________________
| - Select - |v| | Something |v|
`--------------' `----------------'
| - Select - | | Something | <- no empty option
| First | | Another thing |
| Second | | Something else |
| Third | | Final thing |
-------------- ----------------
(Do #states
cài đặt, hộp chọn thứ hai chỉ xuất hiện khi hộp chọn thứ nhất có "Thứ ba" được chọn)
Sự không nhất quán này đang gây ra vấn đề trong tình huống chúng ta đang tạo các dạng động phức tạp với các trường phụ thuộc lẫn nhau.
Có ai có ý tưởng tại sao các lĩnh vực đang được cung cấp các tùy chọn không nhất quán và cách tiếp cận tốt nhất là giải quyết vấn đề không?