将自定义代码添加到Drupal 7 webform中

时间:2014-12-18 11:47:38

标签: php drupal drupal-7 drupal-webform

我希望将自定义验证码输入添加到Drupal Webform中。我想使用的验证码不能作为插件使用,因此我想在输出时挂钩表单,然后添加我的验证码演示文稿脚本。

我已经知道如何使用<theme>_form_alter()来抓取表单。我不太确定的是我如何在某个时刻将元素注入表单中。如果有人知道如何实现这一点,那将是有用的。

2 个答案:

答案 0 :(得分:1)

您可以在表单提交上添加preventDefault脚本。您的客户端验证然后提交表单。添加您的javascript将如下:

/**
 * Implements hook_form_alter().
 */
function MODULENAME_form_alter(&$form, &$form_state, $form_id) {
  dpm($form_id);
  if ($form_id == 'YOUR_FORM_ID_HERE') { // Example Form ID: webform_client_form_23

    $form['#attached']['js'][] = drupal_get_path('module', 'MODULENAME') . 'path/to/example_file.js';

    // OR

    drupal_add_js(drupal_get_path('module', 'MODULENAME') . 'path/to/example_file.js');

  }
}

答案 1 :(得分:0)

您可以通过覆盖默认表单创建轻松完成。在您的网络表单的模板文件夹中创建一个文件,说明其webform-form-22.tpl.php .. 使用默认情况下可用的$form变量。放置$form变量中的表单元素,并根据您的要求在表单中的任何位置放置自定义验证码,并在挂钩custom_module_webform_submission_insert中验证..