Score:0

อาร์เรย์แบบฟอร์มการดำเนินการแทนที่เพื่อตั้งค่าแอตทริบิวต์รหัส HTML

ธง cn

ผมขอขยายความ แบบฟอร์มเอนทิตี class และฉันพยายามแทนที่ปุ่มส่งเพื่อตั้งค่าแอตทริบิวต์ HTML ID (ลอง #1) เนื่องจากมันใช้งานไม่ได้ ฉันจึงพยายามห่อปุ่มไว้ในกระดาษห่อ <div>. ฉันพยายามห่อด้วยสองวิธีที่แตกต่างกัน (ลอง #2 และลอง #3) แต่ไม่ได้ผล วิธีเดียวที่ฉันสามารถแทนที่ปุ่มส่งได้คือการตั้งค่า '#คุณลักษณะ' เพื่อตั้งค่าแอตทริบิวต์ HTML ระดับ และเพิ่มคลาส CSS ของตัวเอง แต่ความปรารถนาของฉันคือตั้งค่า HTML รหัส คุณลักษณะ. และฉันต้องการทำสิ่งนี้แทนที่ใน actions() วิธีการ (ไม่ใช่ form())

ใช้ Drupal\Core\Entity\ContentEntityForm

คลาส MyForm ขยาย ContentEntityForm {

  การกระทำของฟังก์ชันที่ได้รับการป้องกัน (อาร์เรย์ $form, FormStateInterface $form_state) {
    $actions = parent::actions($form, $form_state);

    $actions['ส่ง'] = [
      '#type' => 'ส่ง',
      '#id' => 'ปุ่มบันทึก', // <-- ลอง #1
      '#value' => t('บันทึก'),
      '#อาแจ็กซ์' => [
        'callback' => '::ajaxCallback',
        'event' => 'mousedown',
        'wrapper' => 'bar-wrapper-1', // <-- ลอง #2
      ]
      '#prefix' => '<div id="bar-wrapper-2">', // <-- ลอง #3
      '#suffix' => '</div>',
      '#attributes' => [
        'คลาส' => ['foo'], // <-- ลอง #4
      ]
    ];

    $actions['submit_wrapper'] = [
      '#type' => 'มาร์กอัป',
      '#markup' => '<div id="bar-wrapper-1"></div>'
    ];

    ส่งคืน $actions;
  }

}

ฉันคิดว่าฉันสามารถแทนที่รหัส HTML ภายในเท่านั้น รูปร่าง()แต่ดูไม่สอดคล้องกันเล็กน้อยเพราะฉันสามารถแทนที่/เพิ่มคลาส CSS ได้

Score:1
ธง ch
STF

ตัวอย่างที่นี่:

$แบบฟอร์ม['ส่ง'] = [
  '#type' => 'ส่ง',
  '#value' => $this->t('ส่ง'),
  '#น้ำหนัก' => 99,
  '#attributes' => ['class' => ['ex-black'], 'id' => ['testId']],
  '#prefix' => '<div id="testIdWrapper">',
  '#suffix' => '</div>',
];
Hermann Schwarz avatar
cn flag
โปรดทราบว่าฉันต้องการแทนที่รหัสแอตทริบิวต์ HTML ภายในเมธอด actions() ในคลาสย่อยของ `ContentEntityForm` มันคืออาร์เรย์ $actions ที่ฉันพยายามสร้างการแทนที่ ด้วยวิธีนี้ฉันสามารถแทนที่แอตทริบิวต์ `class` แต่ไม่ใช่ `id`
Hermann Schwarz avatar
cn flag
ตอนนี้ฉันมีความสุขกับการตั้งค่าแอตทริบิวต์ `class` บนอาร์เรย์ $actions

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา