以下のコードを使用して、管理パネルで作成したフォームを変更して、最初のテキストエリアから 2 番目のテキストエリアにテキストをコピーしています。これは、[コピー] ボタンをクリックして行います。フロントエンドは期待どおりに機能します。
ただし、デフォルトの送信ボタンを使用してフォームを送信すると、テキストエリアの値がデータベースに追加されません。したがって、管理パネルから Web フォームの結果に移動すると、値が表示されません。
このためにカスタム送信ハンドラーに何か追加する必要がありますか?
ありがとう
function fence_quote_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'webform_client_form_1'){
$form['input'] = array(
'#type' => 'textarea',
'#title' => t('Input text'),
'#prefix' => '<div id="in-text">',
'#attributes' => array(
'placeholder' => t('Enter some text here... '),
),
'#suffix' => '</div>',
);
$form['buttons']['fence_quote'] = array(
'#type' => 'button',
'#value' => t('Copy'),
'#ajax' => array(
'callback' => 'fence_quote_form_callback',
'wrapper' => 'out-text',
),
);
$form['output'] = array(
'#type' => 'textarea',
'#title' => t('Output text:'),
'#prefix' => '<div id="out-text">',
'#value' => '',
'#attributes' => array(
'placeholder' => t('Your text will appear here...'),
),
'#suffix' => '</div>',
);
$form['#validate'][] = 'mymodule_someform_custom_validation';
$form['#submit'][] = 'my_custom_submit_function_submit';
}
}
function fence_quote_form_callback($form, &$form_state) {
$form['output']['#value'] = $form_state['values']['input'];
return $form['output'];
}
function my_custom_submit_function_submit($form, &$form_state) {
}