我有一个Webform,上面有一个单选按钮选择列表。
我想根据单选按钮选择设置隐藏文本字段的值。 因此,如果用户选择第一个选项,我希望文本字段具有“First”作为文本,并且就像那样。
这可以吗?我希望最后使用此文本字段进行其他处理。
答案 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前端执行此操作,那么我建议如下:
你想要的一些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的处理应该很好。