เมื่อฉันสร้างกล่องเลือกมาตรฐานโดยใช้แบบฟอร์มการ API Drupal 7 ค่าแรก (ยังเป็นที่หนึ่งที่เลือกบนสด 'ฟอร์มที่ว่างเปล่า') <option selected="selected" value="">- Select -</option>
เป็น ค่านี้ไม่ได้ระบุไว้ในคำจำกัดความของแบบฟอร์มและฉันไม่ได้ทำการเปลี่ยนแปลงแบบฟอร์ม (ไม่เป็นไร)
อย่างไรก็ตามเมื่อฉันสร้างกล่องเลือกที่สองที่ขึ้นอยู่กับการใช้ครั้งแรก#states
มันจะไม่มีค่าเริ่มต้นใด ๆ สำหรับรูปแบบที่ซับซ้อนที่มีการขึ้นต่อกันหลายครั้งความไม่สอดคล้องนี้เป็นปัญหา
ตัวอย่างคำจำกัดความของแบบฟอร์มมีดังนี้:
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;
}
ในตัวอย่างง่ายๆนี้เรามี 2 กล่องที่เลือกและปุ่มส่ง กล่องเลือกสองกล่องจะแสดงเป็น:
______________ ________________
| - Select - |v| | Something |v|
`--------------' `----------------'
| - Select - | | Something | <- no empty option
| First | | Another thing |
| Second | | Something else |
| Third | | Final thing |
-------------- ----------------
(เนื่องจากการ#states
ตั้งค่ากล่องเลือกที่สองจะปรากฏเฉพาะเมื่อกล่องที่เลือกแรกมีการเลือก "ที่สาม")
ความไม่สอดคล้องกันนี้ทำให้เกิดปัญหาในสถานการณ์ที่เรากำลังสร้างรูปแบบไดนามิกที่ซับซ้อนด้วยเขตข้อมูลขึ้นอยู่กับ
ไม่มีใครมีความคิดว่าทำไมเขตข้อมูลจึงได้รับตัวเลือกที่ไม่สอดคล้องกันและวิธีการที่ดีที่สุดในการแก้ไขปัญหาคืออะไร