您可以使用一些基本的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);
...当然变化 INPUT_NAME与隐藏的name属性输入字段和 CUSTOMNAME带有描述性名称(例如ChangeHiddenValuesForm
)。
最后一点:确保在表单的页面上包含此JavaScript文件。
编辑: 对不起,我忽略了Secure value
参考。
无论如何,如果你希望值是安全的,那么你不应该改变它的Javascript,因为任何人都可以通过DOM将其更改为他或她喜欢的任何东西......这就是为什么Webform实现Secure value
功能:价值确实与表单一起提交,但不会发送到最终用户的浏览器,因此禁用可能的滥用。 (根据记录:Secure value
使用“值”类型从Drupal的形式API)
如果你想改变这样一个隐藏的价值,你应该选择Hidden element (less secure, changeable via JavaScript)
其中已经提到它能够通过JavaScript来改变,然后使用上面描述的Drupal行为。只有你这样做,它才会被打印为隐藏的输入。
感谢,但对'安全values'似乎不显示为正常隐藏输入。有任何想法吗? – Cybercampbell
请参阅我的文章中的编辑。 – Propaganistas
使用webform 4.x至少你的输入字段将被命名为括号,并且你需要类似这样的内容来用jQuery选择它们:$('input [name =“submitted [INPUT_NAME]”]')。VAL( 'NEW_VALUE'); - 我不确定这是旧版webform的情况。谢谢你的伟大答案。 –