我创建了一个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隐藏值?
答案 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);