Drupal 7:Webform:在选择单选按钮时将隐藏字段设置为某个值

时间:2013-12-23 22:17:55

标签: drupal drupal-7 drupal-webform

我有一个Webform,上面有一个单选按钮选择列表。

我想根据单选按钮选择设置隐藏文本字段的值。 因此,如果用户选择第一个选项,我希望文本字段具有“First”作为文本,并且就像那样。

这可以吗?我希望最后使用此文本字段进行其他处理。

2 个答案:

答案 0 :(得分:0)

我同意Ben ...你应该使用select字段选项的语法来使用select字段的值,即"safe_key|Some readable option"(不带引号)

所以你的选择字段选项会有:

first|This is some pizza
second|Just the cheese

如果你愿意,既然你想要值“First”,你甚至可以把钥匙大写,即:

First|This is some pizza
Second|Just the cheese

但是,如果您坚持让select字段更改隐藏字段的值,并且您希望纯粹通过Drupal 7前端执行此操作,那么我建议如下:

  • 安装以下模块:
    • 每个节点的代码 - 允许您将自定义CSS / JS添加到内容类型或单个节点
  • 更新内容类型设置(即按内容类型或单个节点)
  • 然后,编写一些jQuery或JS,在你的webform节点上做你想做的事情......即:

你想要的一些Javascript :: jQuery:

jQuery( "#my-select-field" )
  .change(function () {
    var str = jQuery(this).text();
    jQuery( "my-hidden-field" ).val( str );
  })
  .change();

最后的“.change()”调用是触发更改事件,以便始终使用适当的数据填充隐藏字段...

请务必将代码置于"jQuery( document ).ready(function() { ... }"调用中,以便在正确的时刻进行绑定,以便您的页面完成加载。

*注意:在Drupal 7中,核心jQuery库由"jQuery"引用,而不是"$"别名

答案 1 :(得分:0)

您可以创建一个实现提交功能的模块。因此,如果您的模块是“specialFormProcessing”,您将创建函数:

function specialFormProcessing_mySubmitFunction($form, &$form_state) {
}

在该函数中,您可以从SELECT框中设置隐藏字段的值。

您还应该将函数添加到将处理表单的函数数组中。将有您和表单的原始提交功能(取决于表单的内容),以及其他模块已实现的其他功能。您可以通过在模块中创建一个hook_form_alter()函数来完成此操作:

function specialFormProcessing_form_submit(&$form, &$form_state, $form_id) {
}

您使用$ form_id确保您正在处理正确的表单,然后执行以下操作:

$form['#submit'][]='specialFormProcessing_mySubmitFunction';

当我学习Drupal并操纵Forms时,我发现VanDyk的“Pro Drupal Development”这本书非常有用。我使用的是Drupal 6,但他有一个更新版本的Drupal 7.有人批评它没有涉及一些新的Drupal 7功能,但它对Forms的处理应该很好。