Drupal中两种方式设置HTML元素ID的区别

yunke 提交于 周四, 06/02/2022 - 11:15

在渲染数组中为元素设置ID值,你有两种方式:“#id”和“#attributes”,它们有什么不同吗?关于本篇,你也可以理解成是一个AJAX API的重要知识点

"#id"方式:

$form['preview'] = [
    '#type'       => 'button',
    '#value'      => 'yunke',
    '#id'         => 'yunke-click-calculate-price',
    '#ajax'       => [
      'callback'        => 'ajaxRefresh',
    ],
  ];

属性方式:

$form['preview'] = [
    '#type'       => 'button',
    '#value'      => 'yunke',
    '#attributes' => [
      'id' => 'yunke-click-calculate-price',
    ],
    '#ajax'       => [
      'callback'        => 'ajaxRefresh',
      'disable-refocus' => TRUE,
    ],
  ];

以上两种方式都能成功设置元素ID,但其内部处理过程是不一样的,属性方式优先级更高

虽然都能成功设置ID,但在有些情况下,它们有巨大影响,比如上列中,在使用AJAX时,你只能使用“#id”方式,否则AJAX设置将失效,也由于属性方式优先级更高,因此你不能再采用属性方式

关于本篇,你也可以理解成是一个AJAX API的重要知识点

 

添加新评论

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
请输入以上问题的答案,换一个问题请刷新,不区分大小写