0

以下のコードを使用して、管理パネルで作成したフォームを変更して、最初のテキストエリアから 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) {

}
4

0 に答える 0