เราจำเป็นต้องเพิ่ม 'ฟิลด์ที่ทำซ้ำได้' ลงในแบบฟอร์มโดยอิงตามอินพุตที่ให้ไว้ในฟิลด์ข้อความ โดยปกติแล้ว เราใช้ปุ่ม 'เพิ่มปุ่มอื่น' เพื่อติดตามจำนวนฟิลด์ที่จะแสดงผลใน สร้างแบบฟอร์ม ()
และอัปเดตหมายเลขนั้นในการส่งการโทรกลับบนปุ่ม
ฟังก์ชั่นที่เราต้องการไม่ใช่อย่างนั้น เราต้องการเพื่อให้เมื่อมีคนป้อนข้อความลงในช่องข้อความ (นอกเหนือจากช่องว่าง) ก็จะเพิ่มกลุ่มของช่องเพิ่มเติมด้านล่าง เราอนุญาตให้ผู้คนสแกนบาร์โค้ด และทุกครั้งที่พวกเขาสแกนบาร์โค้ดลงในช่องข้อความ เราต้องการให้สร้างกลุ่มของช่องขึ้นมาอีกกลุ่มหนึ่ง เพื่อให้พวกเขาสามารถสแกนรายการอื่นได้หากต้องการ
เราพยายามใช้ #ส่ง
บนฟิลด์ข้อความ แต่ #submit ดูเหมือนจะไม่ทริกเกอร์บนฟิลด์ข้อความ เนื่องจากเราได้เพิ่มคำสั่งพิมพ์ เช่นเดียวกับ $form-state->set()
ในนั้นและพยายามพิมพ์ออกมา $form_state->get()
ในแบบฟอร์มไม่มีประโยชน์
เนื่องจากคุณไม่สามารถอัปเดต form_state ภายในการโทรกลับ ajax เราจึงไม่สามารถหาวิธีบรรลุสิ่งที่เราต้องการได้ (เพิ่มกลุ่มฟิลด์อื่นเมื่อป้อนข้อความลงใน textarea)
มีวิธีอื่นที่เราสามารถทำได้หรือไม่?
(เราอนุญาตให้เพิ่มได้ 10 กลุ่มต่อการส่งเท่านั้น ดังนั้นในฐานะ 'วิธีแก้ปัญหา' เราจะเพิ่ม 10 กลุ่มใน buildForm แบบไดนามิก จากนั้นจึงใช้ #รัฐ
เพื่อซ่อนแต่ละฟิลด์หากฟิลด์ข้อความก่อนหน้านี้ไม่มีข้อมูล แต่สิ่งนี้ไม่อนุญาตให้เราเพิ่มปุ่ม 'ลบ' สำหรับแต่ละฟิลด์ข้อความ เพื่อให้ผู้ใช้สามารถลบฟิลด์ข้อความที่ไม่ต้องการใช้)