javascript - 如何正确地将 onchange 属性添加到 Drupal 7 中的表单字段

标签 javascript drupal-7 drupal-forms drupal-render

在我正在编码的模块中,我有以下代码:

        'SelectType' => array(
          '#type' => 'select',
          '#name' => 'dropdown',
          '#options' => drupal_map_assoc(array(
                        'Keyword-classic','Keyword-Encore','Reserves: Instructor',)),
          '#attributes' => array('id' => array('SelectType'),
                  'onchange' => "change_action('catalogsearch', this.selectedIndex)",
          ),
        ),

这会产生这样的结果:

[...]
<select id="SelectType" 
    onchange="change_action(&#039;catalogsearch&#039;, this.selectedIndex)"
    name="dropdown" class="form-select">
[...]

我需要它来生成(在第三行输出 ' 而不是 '):

[...]
<select id="SelectType" style="float:left;" 
    onchange="change_action('catalogsearch', this.selectedIndex)"
    name="dropdown" class="form-select">
[...]

我需要更改什么才能使其正常工作?

最佳答案

你可以尝试这样:

    'SelectType' => array(
      '#type' => 'select',
      '#name' => 'dropdown',
      '#options' => drupal_map_assoc(array(
                    'Keyword-classic','Keyword-Encore','Reserves: Instructor',)),
      '#attributes' => array('id' => array('SelectType'),
              'onchange' => 'change_action(\'catalogsearch\', this.selectedIndex)',
      ),
    ),

顺便说一下,由于 ID 是唯一的,并且一个元素一次只能使用一个,因此您应该使用 'id' => 'SelectType'而不是 'id' => array('SelectType')

编辑:

如果上面的代码不起作用,那么您可以使用jQuery,如下所示:

$("#SelectType").change(function() { 
    YOUR CODE.....
});

关于javascript - 如何正确地将 onchange 属性添加到 Drupal 7 中的表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17432186/

相关文章:

jquery - AJAX 表单验证并提交

javascript - 使用按钮更改同一父容器中输入字段中的数字

mysql - Drupal 7 PDOException : SQLState[42S22], 未知字段

php - 如何使用 Drupal 7 中的 l() 函数从备用语言链接到站点的默认语言

德鲁巴 7 : page manager/panels and hook_node_view

drupal-forms - Drupal 8, 'managed file' 字段的默认值

javascript - 如何使用jquery从数据库创建复选框列表数据

javascript - 获取 JSON 中数组对象的名称

javascript - L is not defined 错误与传单

php - 根据在另一个列表中选择的值在 drupal 7 中动态加载列表