【问题标题】:Add custom code into Drupal 7 webform将自定义代码添加到 Drupal 7 网络表单中
【发布时间】:2014-12-18 11:47:38
【问题描述】:

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

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

【问题讨论】:

    标签: php drupal drupal-7 drupal-webform


    【解决方案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');
    
      }
    }
    

    【讨论】:

      【解决方案2】:

      您可以通过覆盖默认表单创建来轻松做到这一点。在您的模板文件夹中为您的网络表单创建一个文件,例如 webform-form-22.tpl.php.. 使用默认可用的$form 变量。放置来自$form 变量的表单元素,并根据您的要求将您的自定义验证码放置在表单中的任何位置,并在钩子custom_module_webform_submission_insert..中验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多