【问题标题】:fire an onchange event in select form control in drupal 7 forms api在drupal 7 forms api中的选择表单控件中触发onchange事件
【发布时间】:2015-02-02 03:22:55
【问题描述】:

我在 Drupal 7 中有一个选择表单控件。如何在 onchange 事件触发时调用函数。

这是我的选择表单控件代码:

$form['id']['signature'] = array(
    '#type' => 'select',       
    '#options' => array(
        0 => t('Browse...'),
        1 => t('Sign...'),
        2 => t('Clear...'),        
    ),       
);

【问题讨论】:

    标签: forms drupal drupal-7 form-api form-control


    【解决方案1】:

    您可能可以使用“#attibutes”来做到这一点。
    例如。

    $form['id']['signature']['#attributes'] = array('onchange' => array('myFunction()'))
    

    虽然我从不喜欢向 html 标签添加事件属性,但您也可以通过向表单添加内联(或外部)javascript 来实现,其行为如下:

    $form['id']['signature'] = array(
        '#type' => 'select',       
        '#options' => array(
            0 => t('Browse...'),
            1 => t('Sign...'),
            2 => t('Clear...'),        
        ),
        '#attributes' => array(
            'id' => array('signature-goes-here'),
        ),
    );
    $form['id']['signature']['#attached']['js'][] = array(
        'data' => "
    Drupal.behaviors.signature = function (context) {
      $('#signature-goes-here', context).change(function () {
        // Do stuff here.
      });
    }
    ",
        'type' => 'inline',
    );
    

    但如果您想在此表单项更改时触发 ajax,您可能会使用 Drupal 表单 api 功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多