我希望将自定义验证码输入添加到Drupal Webform中。我想使用的验证码不能作为插件使用,因此我想在输出时挂钩表单,然后添加我的验证码演示文稿脚本。
我已经知道如何使用<theme>_form_alter()
来抓取表单。我不太确定的是我如何在某个时刻将元素注入表单中。如果有人知道如何实现这一点,那将是有用的。
答案 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
中验证..