ฉันจะแสดงองค์ประกอบได้อย่างไรหากมีการเลือกค่าใด ๆ จากฟิลด์การเลือกเอนทิตี

Aug 20 2020

ฉันมีฟิลด์บนเว็บฟอร์ม (Drupal 8) ที่ควรแสดงก็ต่อเมื่อผู้ใช้เลือกหนึ่งตัวเลือกขึ้นไปจากฟิลด์การเลือกเอนทิตีไม่ว่าจะเลือกตัวเลือกใดก็ตาม

ตัวเลือกตรรกะเงื่อนไขที่มีอยู่ในเว็บฟอร์มดูเหมือนจะไม่รวมสถานะดังกล่าว ฉันได้ค้นหาทางออนไลน์และดู example_element_states.yml ในโมดูลเว็บฟอร์มและตัวอย่างที่เกี่ยวข้องทั้งหมดที่เลือกระบุค่าตัวเลือกเฉพาะเป็นตรรกะเงื่อนไข

มีใครพบและแก้ไขปัญหาดังกล่าวได้บ้าง

คำตอบ

3 leymannx Aug 20 2020 at 04:06

รับทราบ! คุณต้องตรวจสอบค่าที่มากกว่า 0

user:
  '#type': webform_entity_select
  '#title': User
  '#multiple': true
  '#target_type': user
  '#selection_handler': 'default:user'
  '#selection_settings':
    include_anonymous: false
    filter:
      type: _none
text:
  '#type': textfield
  '#title': Text
  '#states':
    visible:
      ':input[name="user[]"]':
        value:
          greater: '0'

ฉันเดาว่าใน PHP ต้องเป็น:

$form['text']['#states'] = [
  'visible' => [
    ':input[name="user[]"]' => [
      'value' => [
        'greater' => "0",
      ]
    ]
  ]
];