【发布时间】:2013-12-23 22:17:54
【问题描述】:
我有一个网络表单,上面有一个单选按钮选择列表。
我想根据单选按钮选择设置隐藏文本字段的值。 因此,如果用户选择第一个选项,我希望文本字段具有“First”作为文本,就像这样。
这可以吗?我想最终在以后将此文本字段用于其他处理。
【问题讨论】:
-
你以后能不能只使用单选按钮选择的值而不是做这个客户端?
标签: drupal drupal-7 drupal-webform
我有一个网络表单,上面有一个单选按钮选择列表。
我想根据单选按钮选择设置隐藏文本字段的值。 因此,如果用户选择第一个选项,我希望文本字段具有“First”作为文本,就像这样。
这可以吗?我想最终在以后将此文本字段用于其他处理。
【问题讨论】:
标签: drupal drupal-7 drupal-webform
我同意 Ben...您应该使用选择字段选项的语法来使用选择字段本身的值,即 "safe_key|Some readable option"(不带引号)
因此您的选择字段选项将类似于:
first|This is some pizza
second|Just the cheese
如果你愿意,既然你想要“First”这个值,你甚至可以将键大写,即:
First|This is some pizza
Second|Just the cheese
但是,如果您坚持让选择字段更改隐藏字段的值,并且您想纯粹通过 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" 引用,而不是 "$" 别名
【讨论】:
您可以创建一个实现提交功能的模块。因此,如果您的模块是“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';
我发现 VanDyk 的《Pro Drupal Development》一书在我学习 Drupal 和操作表单时非常有帮助。我使用的是 Drupal 6,但他有一个更新的 Drupal 7 版本。有人批评它没有处理 Drupal 7 的一些新功能,但它对表单的处理应该很好。
【讨论】: