通过Javascript更改Webform隐藏值

时间:2014-01-29 17:05:29

标签: javascript jquery drupal drupal-webform

我创建了一个Drupal站点,其中包含一个外部PHP文件和一个外部JS。 他们似乎都工作。

然后我添加了一个包含一些隐藏字段的webform。 JS的一个功能必须改变这些隐藏字段的值。 在页面源代码中,我看到这些字段被命名为“提交[ comp_name ]”,其中 comp_name 是特定字段的名称,如webform中所定义。

JS函数有2个输入形式参数,一个是 comp_name ,另一个是 id 。我们的目的是将 id 值设置为 comp_name 字段。

我试过了:

document.getElementByName("submitted["+comp_name+"]").value = id;

以及

$("#submitted["+#comp_name#+"]").val(id);

但是当我尝试发送网络表单时,隐藏的值与默认值保持一致。

我做错了什么? 是否可以通过javascript更改webform隐藏值?

2 个答案:

答案 0 :(得分:0)

如果submitted[comp_name]是该字段的id="",那么这应该有效:

$('#submitted[' + comp_name + ']').val(id);

没有您在#中使用的#comp_name#

但是,如果submitted[comp_name]是字段的name="",并且该字段是<input>元素,那么请执行以下操作:

$('input[name=submitted[' + comp_name + ']]').val(id);

答案 1 :(得分:0)

似乎submitted["+comp_name+"]是您元素的name,但在javascript中我们没有document.getElementByName,但您可以这样做:

document.querySelector("input[name='submitted["+comp_name+"]']").value = id;

或使用jQuery do:

$("input[name='submitted["+comp_name+"]']").val(id);

但如果submitted["+comp_name+"]id,请执行此操作:

document.getElementById("submitted["+comp_name+"]").value = id;

或使用jQuery:

$("#submitted["+comp_name+"]").val(id);