Score:0

การตรวจสอบอินพุตวิทยุใช้ไม่ได้สำหรับฉัน

ธง il

ฉันกำลังสร้างฟอร์มด้วย drupal form api การตรวจสอบใช้งานได้ดีสำหรับช่องอื่นๆ ทั้งหมดของฉัน แต่ตอนนี้ฉันเริ่มลองใช้ปุ่มตัวเลือกแล้ว ไม่สำคัญว่าฉันจะคลิกที่ตัวเลือกตัวเลือกหรือไม่ การตรวจสอบจะส่งคืน 'สีที่จำเป็น' เสมอ

// รหัสวิธีการสร้างแบบฟอร์ม
$form['วันเกิด'] = [
  '#type' => 'วันที่',
  '#title' => $this->t('วันเกิดของคุณ'),
  '#date_date_format' => 'd-m-Y',
];

$form['color_select'] = [
  '#type' => 'วิทยุ',
  '#title' => $this->t('เลือกสี'),
  '#ตัวเลือก' => [
    'blue' => $this->t('สีน้ำเงิน'),
    'สีขาว' => $this->t('สีขาว'),
    'black' => $this->t('สีดำ'),
    // 'อื่นๆ' => $this->t('อื่นๆ'),
  ]
  '#attributes' => [
    'id' => 'color_select',
    'ชื่อ' => 'field_color_select',
  ]
  '#รัฐ' => [
    'เปิดใช้งาน' => [
      ':input[name="field_custom_color"]' => ['value' => ''],
    ]
  ]
];

// รหัสวิธีการตรวจสอบแบบฟอร์ม
ถ้า ($form_state->getValue('วันเกิด') == '') {
  $form_state->setErrorByName('วันเกิด', $this->t('ต้องระบุวันเดือนปีเกิด'));
}
ถ้า ($form_state->getValue('color_select') == '') {
  $form_state->setErrorByName('color_select', $this->t('ระบุสีที่ต้องการ'));
}

ฉันคิดว่า getValue(name) และ setErrorByname(name) ต้องเหมือนกับ $form[name] =[]; เพื่อให้มันใช้งานได้ แต่สำหรับฟิลด์ปุ่มตัวเลือก มันไม่เป็นเช่นนั้น

cn flag
คุณรู้จักโมดูล Examples หรือไม่ มีตัวอย่างวิทยุ (และส่วนอื่นๆ ของ Form API) ในโมดูลย่อย `form_api_example`: https://www.drupal.org/project/examples
Jorn Reed avatar
il flag
@PatrickKenny ไม่ ฉันไม่รู้เลย ฮ่าๆ ฉันจะดู!
Score:0
ธง il

ฉันจัดการเพื่อให้มันทำงานดังนี้:

$form['color_select'] = [
  '#type' => 'วิทยุ',
  '#title' => $this->t('เลือกสี'),
  '#ตัวเลือก' => [
    'blue' => $this->t('สีน้ำเงิน'),
    'สีขาว' => $this->t('สีขาว'),
    'black' => $this->t('สีดำ'),
    // 'อื่นๆ' => $this->t('อื่นๆ'),
  ],
  '#attributes' => [
    'id' => 'color_select',
    'ชื่อ' => 'สี_เลือก',
  ],
  '#รัฐ' => [
    'ตรวจสอบแล้ว' => [
      ':input[ชื่อ="color_select"]' => [
        ['ค่า' => 'สีน้ำเงิน'],
        'หรือ',
        ['ค่า' => 'สีขาว'],
        'หรือ',
        ['ค่า' => 'สีดำ'],
      ],
    ],
  ],
];

แม้ว่าตอนนี้ฉันยังไม่แน่ใจว่ามันทำงานอย่างไร มันตั้งค่าปุ่มตัวเลือกเป็นการตรวจสอบเมื่อค่าเป็นหนึ่งในค่าที่กำหนดหรือไม่?

โพสต์คำตอบ

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