【问题标题】:Change Webform hidden values via Javascript通过 Javascript 更改 Webform 隐藏值
【发布时间】:2014-01-29 17:05:29
【问题描述】:

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

然后我添加了一个包含一些隐藏字段的网络表单。 JS 的功能之一是更改这些隐藏字段的值。 在页面源代码中,我看到这些字段被命名为“submitted[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 隐藏值??

【问题讨论】:

    标签: javascript jquery drupal drupal-webform


    【解决方案1】:

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

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

    或者使用 jQuery 做:

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

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

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

    或使用 jQuery:

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

    【讨论】:

    • querySelector 为我工作! :-) 非常感谢梅兰!
    【解决方案2】:

    如果submitted[comp_name] 是该字段的id="",那么这应该可以工作:

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

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

    但是,如果submitted[comp_name] 是该字段的name="",并且该字段是<input> 元素,则改为这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 2011-06-20
      • 1970-01-01
      相关资源
      最近更新 更多