如何将值从javascript传递到drupal 8表单?

J.面团

我需要将Javascript中的值传递给我的drupal 8表单。

我已经在表单中添加了一个隐藏字段。JavaScript正在计算一个值并将其写入字段。但是,如何获取函数SubmitForm()中的值?

使用隐藏字段甚至是正确的方法吗?如果是这样,我该怎么做才能完成这项工作?

为了便于阅读,我删除了大多数代码。

FooForm.php:

class FooForm extends FormBase
{
    public function getFormId()
    {
        return 'fooID';
    }
    public function buildForm(array $form, FormStateInterface $form_state)
    {

    //...here are lot's of elements not relevant right now

    $form['myhiddenfield'] = ['#type' => 'hidden'];//adding hidden field.
    $form['#attached']['library'][] = 'foo/foocalculator';

    return $form;
    }

    public function submitForm(array &$form, FormStateInterface $form_state)
    {
    dpm($form_state->getValues()['myhiddenfield']);//not getting the calculated value.
    }

foocalculator.js:

(function ($, Drupal) {
    passToDrupal = $('#myhiddenfield');
    $('#edit-submit--3').click(function (event) {
        calcRoute(address, $editparcel.fieldValue().toString())
    });
})(jQuery, Drupal);

function calcRoute(start, destination) {
    var request = {
        origin: start,
        destination: destination,
    };
    directionsService.route(request, function (result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(result);
        mydistance = result.routes[0].legs[0].distance.value;
        passToDrupal.val(mydistance);//adds value to hidden field.
    }    
    });
}
瓦西·坎德里斯(Vasi Chindris)

隐藏字段有点特殊,因为字段值的更改在提交的值之间不直接可见(可以通过$ form_state-> getValues()检索)。而是,它们在表单状态的用户输入值中可见,因此请尝试以下操作:

$form_state->getUserInput()['myhiddenfield']

对于隐藏字段,请谨慎使用getUserInput(),因为除非有充分的理由(例如在这种情况下),否则通常由“不友好的”实体来完成对隐藏字段的更改,它们试图破坏您的网站。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将参数从脚本传递到html表单值

来自分类Dev

Drupal 8如何将值传递给菜单树枝模板

来自分类Dev

如何将值从html元素传递到表单字段Django

来自分类Dev

如何将表单输入值从jsp页面传递到java类?

来自分类Dev

如何将值从 Windows 应用程序表单 c# 传递到 html 页面

来自分类Dev

如何将用户输入的表单值从html传递到javascript?

来自分类Dev

如何将用户输入的表单值从html传递到javascript?

来自分类Dev

如何将参数从表单传递到咖啡文件?

来自分类Dev

如何将类别ID传递到表单帖子

来自分类Dev

如何将选择动态传递到Django表单

来自分类Dev

如何将详细视图的 pk 传递到表单的 fk

来自分类Dev

如何将值从Web表单传递到ASP.NET中的另一个表单?

来自分类Dev

如何使用javascript将表单值传递到另一个文件?

来自分类Dev

如何将utf-8数据从Django传递到javascript

来自分类Dev

如何将utf-8数据从Django传递到javascript

来自分类Dev

如何将隐藏的值传递给jQuery中的表单

来自分类Dev

如何将默认值传递给Redux表单

来自分类Dev

如何将值表单 db 传递给弹出窗口

来自分类Dev

如何将值绑定到表单控件

来自分类Dev

如何将Drupal模板绑定到具有多个环境的Web表单?

来自分类Dev

如何将Javascript输出存储到表单中

来自分类Dev

如何将日期从静态网站表单传递到Google表单?

来自分类Dev

如何将数据从父表单传递到子表单

来自分类Dev

在Drupal 8中操纵表单元素

来自分类Dev

在Drupal 8中使用表单

来自分类Dev

EXTJS-如何将2个表单的表单值作为extraParams传递?

来自分类Dev

Drupal 8-如何将内容类型值限制为实体引用

来自分类Dev

Laravel4:如何将Datepicker传递到表单中?

来自分类Dev

如何将表单数据传递到多个sqlite3行

Related 相关文章

  1. 1

    如何将参数从脚本传递到html表单值

  2. 2

    Drupal 8如何将值传递给菜单树枝模板

  3. 3

    如何将值从html元素传递到表单字段Django

  4. 4

    如何将表单输入值从jsp页面传递到java类?

  5. 5

    如何将值从 Windows 应用程序表单 c# 传递到 html 页面

  6. 6

    如何将用户输入的表单值从html传递到javascript?

  7. 7

    如何将用户输入的表单值从html传递到javascript?

  8. 8

    如何将参数从表单传递到咖啡文件?

  9. 9

    如何将类别ID传递到表单帖子

  10. 10

    如何将选择动态传递到Django表单

  11. 11

    如何将详细视图的 pk 传递到表单的 fk

  12. 12

    如何将值从Web表单传递到ASP.NET中的另一个表单?

  13. 13

    如何使用javascript将表单值传递到另一个文件?

  14. 14

    如何将utf-8数据从Django传递到javascript

  15. 15

    如何将utf-8数据从Django传递到javascript

  16. 16

    如何将隐藏的值传递给jQuery中的表单

  17. 17

    如何将默认值传递给Redux表单

  18. 18

    如何将值表单 db 传递给弹出窗口

  19. 19

    如何将值绑定到表单控件

  20. 20

    如何将Drupal模板绑定到具有多个环境的Web表单?

  21. 21

    如何将Javascript输出存储到表单中

  22. 22

    如何将日期从静态网站表单传递到Google表单?

  23. 23

    如何将数据从父表单传递到子表单

  24. 24

    在Drupal 8中操纵表单元素

  25. 25

    在Drupal 8中使用表单

  26. 26

    EXTJS-如何将2个表单的表单值作为extraParams传递?

  27. 27

    Drupal 8-如何将内容类型值限制为实体引用

  28. 28

    Laravel4:如何将Datepicker传递到表单中?

  29. 29

    如何将表单数据传递到多个sqlite3行

热门标签

归档