如何在 Drupal 8 表单中获取触发按钮 ID
How to get triggered button id in Drupal 8 Form
您好,我想知道一种获取在 Drupal 8 表单中单击的按钮的索引 ID 的方法。
我有一个包含一些字段的表格。它有添加、删除、添加更多按钮。
我想在单击删除按钮时删除特定字段的值。
为此,我需要知道被点击按钮的索引。我能够在 Drupal 6 和 Drupal 7 中实现,但无法在 Drupal 8 中实现。
Drupal 6:
function field_add($form, &$form_state) {
$element_key = $form_state['clicked_button']['#parents'][1];
}
Drupal 7:
function field_add($form, &$form_state) {
$element_key = $form_state['triggering_element']['#parents'][1];
}
如何在 Drupal 8 中获得相同的内容?
我想通了。
这是在 Drupal 8 中实现它的一种方法。
public function field_add(array &$form, FormStateInterface $form_state) {
$element_key = $form_state->getTriggeringElement()['#parents'][1];
}
在 Drupal 8 中,这对我来说很有效
$clickedElement = $form_state->getTriggeringElement()['#array_parents'][1];
在 Drupal 8 中,我使用属性“#name”命名我的按钮,以便能够使用此代码:
$clickedElement = $form_state->getTriggeringElement()['#name'];
通过这种方式,您可以防止数组索引不同的可能问题。
您好,我想知道一种获取在 Drupal 8 表单中单击的按钮的索引 ID 的方法。 我有一个包含一些字段的表格。它有添加、删除、添加更多按钮。
我想在单击删除按钮时删除特定字段的值。 为此,我需要知道被点击按钮的索引。我能够在 Drupal 6 和 Drupal 7 中实现,但无法在 Drupal 8 中实现。
Drupal 6:
function field_add($form, &$form_state) {
$element_key = $form_state['clicked_button']['#parents'][1];
}
Drupal 7:
function field_add($form, &$form_state) {
$element_key = $form_state['triggering_element']['#parents'][1];
}
如何在 Drupal 8 中获得相同的内容?
我想通了。 这是在 Drupal 8 中实现它的一种方法。
public function field_add(array &$form, FormStateInterface $form_state) {
$element_key = $form_state->getTriggeringElement()['#parents'][1];
}
在 Drupal 8 中,这对我来说很有效
$clickedElement = $form_state->getTriggeringElement()['#array_parents'][1];
在 Drupal 8 中,我使用属性“#name”命名我的按钮,以便能够使用此代码:
$clickedElement = $form_state->getTriggeringElement()['#name'];
通过这种方式,您可以防止数组索引不同的可能问题。