-2
我如何爲單個字段獲取兩個下拉菜單?例如,時間字段一個小時(0-23)和其他幾分鐘(0-59)下降。如何讓兩個下拉菜單在drupal的單個字段中?
我如何爲單個字段獲取兩個下拉菜單?例如,時間字段一個小時(0-23)和其他幾分鐘(0-59)下降。如何讓兩個下拉菜單在drupal的單個字段中?
如果您在Drupal 7站點上使用了自定義模塊,則可以包含一個爲您進行轉換的實現hook_form_alter
。 (對於這個鉤子的詳細說明,請參見http://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_form_alter/7。)
基本上,你會想鉤到你想改變(也許是在if
條款測試的$form_id
以確保形式,它的格式匹配你想改變),並創建兩個新的字段小時和分鐘,同時隱藏內置字段,顯示你試圖存儲的時間。這裏有一個例子:
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'my_form_id') {
$form['original_time_field']['#type'] = 'hidden';
$hours = array();
for ($digit = 0; $digit < 24; $digit++) {
$hours[$digit] = $digit;
}
$minutes = array();
for ($digit = 0; $digit < 60; $digit++) {
$minutes[$digit] = $digit;
}
$form['hours'] = array(
'#type' = 'select',
'#options' = $hours,
'#title' = t('Hours'),
);
$form['minutes'] = array(
'#type' = 'select',
'#options' = $minutes,
'#title' = t('Minutes'),
);
}
}
然後你有幾個選擇。您可以包含自定義.js
文件,該文件偵聽小時和分鐘下拉的更改並即時重寫隱藏的時間字段值,也可以爲有問題的表單編寫自定義提交處理程序(使用表單API或實現相應的hook_form_submit
函數),該函數使用$form_state
變量組合您的兩個虛擬字段並將結果值寫入實時字段。