Drupal 7 Drupal 7将值从javascript传递到webform隐藏字段

Drupal 7 Drupal 7将值从javascript传递到webform隐藏字段,drupal-7,drupal-theming,drupal-webform,Drupal 7,Drupal Theming,Drupal Webform,我有一个网络表单,有一些普通字段(名字和姓氏等),但也有一些隐藏字段 f1 - Hidden f2 - Hidden f3 - Hidden 它被设置为安全值(允许使用所有令牌),因此我可以使用令牌 问题是,如何将值从javascript传递到webform隐藏字段,以便它们随表单一起提交 我查看了标记,例如:%post[f1],%post[f2]&%post[f3],但仍然不知道如何添加值(使用javascript/jQuery) 非常感谢您的帮助 C您可以使用一些基本的jQuery来实

我有一个网络表单,有一些普通字段(名字和姓氏等),但也有一些隐藏字段

f1 - Hidden

f2 - Hidden

f3 - Hidden
它被设置为
安全值(允许使用所有令牌)
,因此我可以使用令牌

问题是,如何将值从javascript传递到webform隐藏字段,以便它们随表单一起提交

我查看了标记,例如:
%post[f1]
%post[f2]
&
%post[f3]
,但仍然不知道如何添加值(使用javascript/jQuery)

非常感谢您的帮助


C

您可以使用一些基本的jQuery来实现这一点

$('input[name=INPUT_NAME]').val('NEW_VALUE');
为了完全遵守Drupal主题,您可能希望将其总结为Drupal行为:

(function ($) {
Drupal.behaviors.CUSTOMNAME = {
  attach: function(context) {

     $('input[name=INPUT_NAME]').val('NEW_VALUE');

  }
}
})(jQuery);
…当然,使用隐藏输入字段的NAME属性更改输入\ u名称,并使用描述性camelcase名称更改CUSTOMNAME(例如
ChangeHiddenValuesForm

最后,请注意:请确保在表单页面上包含此javascript文件

编辑: 抱歉,我忽略了
安全值
参考

无论如何,如果您希望值是安全的,那么您不应该通过Javascript更改它,因为任何人都可以通过DOM将其更改为他或她喜欢的任何内容。。。这就是Webform实现
安全值
功能的原因:该值会随表单一起提交,但不会发送到最终用户的浏览器,从而禁用可能的滥用。(记录:
Secure value
使用Drupal表单API中的“value”类型)


如果您确实想更改这样一个隐藏值,您应该选择
隐藏元素(不太安全,可以通过JavaScript更改)
,它已经提到了通过JavaScript更改的能力,然后使用上面描述的Drupal行为。只有这样做,才会将其打印为隐藏输入。

如果您只想添加一些javascript,那么使用drupal\u add\u js总线作为安全值,它将无法修改。尝试在主题文件中预处理页面

             function mytheme_preprocess_page(&$vars, $hook) { 
            if (true) {
             drupal_add_js(drupal_get_path('theme', 'mytheme') . '/mytheme.js');
            $vars['scripts'] = drupal_get_js(); 
               }

这只是一个理论…

谢谢,但是
安全值
似乎不会显示为正常的隐藏输入。有什么想法吗?对于webform 4.x,至少您的输入字段将是带括号的名称,并且您需要类似这样的内容来使用jQuery:$('input[name=“submitted[input_name]”“])。val('NEW_VALUE');-我不确定旧版本的webform是否如此。感谢您的回答。
值确实随表单一起提交
-但它似乎不在常规表单提交中-知道在哪里吗?