我有一个带有一些普通字段的网页表单(第一个和最后一个名字等),还有一些隐藏字段。
f1 - Hidden
f2 - Hidden
f3 - Hidden
它已设置为Secure value (allows use of all tokens)
,因此我可以使用令牌。
问题是,如何将值从javascript传递到webform隐藏字段,以便它们与表单一起提交。
我查看了令牌,例如:%post[f1]
,%post[f2]
& %post[f3]
但仍然不知道如何添加值(使用javascript / jQuery)。
非常感谢任何帮助。
C
答案 0 :(得分:1)
你可以使用一些基本的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属性更改 INPUT_NAME ,使用描述性camelcase名称更改 CUSTOMNAME (例如ChangeHiddenValuesForm
)。
最后请注意:请务必在表单的页面上包含此javascript文件。
修改强>
抱歉,我忽略了Secure value
参考。
无论如何,如果你想要价值是安全的,那么你不应该通过Javascript来改变它,因为任何人都可以通过DOM将它改变为他或她喜欢的任何东西......这就是为什么Webform实现了Secure value
功能: 值与表单一起提交,但不会被发送到最终用户的浏览器,从而禁用可能的滥用行为。 (对于记录:Secure value
使用Drupal的Form API中的' value '类型)
如果您确实想要更改这样的隐藏值,您应该选择已经提及通过Javascript更改其能力的Hidden element (less secure, changeable via JavaScript)
,然后使用上述的Drupal行为。只有你这样做才会打印成隐藏的输入。
答案 1 :(得分:0)
如果您只是想添加一些javascript,那么使用drupal_add_js总线作为安全值,它将无法修改。在ur主题文件中尝试preprocess_page
function mytheme_preprocess_page(&$vars, $hook) {
if (true) {
drupal_add_js(drupal_get_path('theme', 'mytheme') . '/mytheme.js');
$vars['scripts'] = drupal_get_js();
}
它只是一个理论......