การควบคุม Combobox ที่ใช้ jQuery แบบมืออาชีพ? [ปิด]


86

มีการควบคุม Combobox แบบมืออาชีพ (รายการแบบเลื่อนลงพร้อมคำแนะนำอัตโนมัติ) ตามไลบรารี jQuery หรือไม่

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

ข้อความแสดงแทน

ฉันใช้การควบคุมของบุคคลที่สามอยู่แล้ว แต่ฉันพบปัญหาความเข้ากันได้ระหว่างการควบคุมของผู้ขายสองราย ฉันต้องการกำจัดการอ้างอิงประเภทนี้


คุณเคยพบคำตอบที่ดีกว่าสำหรับคำถามนี้หรือไม่
องค์ประกอบ

ดูคำตอบของ GeorgeBarker ด้านล่าง
splattne

combobox ของ jQuery เรียกว่า 'เติมข้อความอัตโนมัติ' jqueryui.com/autocomplete/#combobox
Aaron

คำตอบ:


24

น่าเสียดายที่สิ่งที่ดีที่สุดที่ฉันเคยเห็นคือjquery.comboboxแต่มันไม่เหมือนกับสิ่งที่ฉันต้องการใช้ในเว็บแอปพลิเคชันของฉันจริงๆ ฉันคิดว่ามีปัญหาการใช้งานบางอย่างกับการควบคุมนี้ แต่ในฐานะผู้ใช้ฉันไม่คิดว่าจะเริ่มพิมพ์เพื่อให้รายการแบบเลื่อนลงเปลี่ยนเป็นกล่องข้อความ

ฉันชอบCombo Dropdown Boxมาก แต่ก็ยังมีคุณสมบัติบางอย่างที่ฉันต้องการและมันยังอยู่ในอัลฟ่า สิ่งเดียวที่ฉันไม่ชอบเกี่ยวกับสิ่งนี้นอกเหนือจากความเป็นอัลฟ่า ... คือเมื่อฉันพิมพ์ในคอมโบบ็อกซ์รายการแบบเลื่อนลงเดิมจะหายไป อย่างไรก็ตามอาจมีการตั้งค่าสำหรับสิ่งนี้ ... หรืออาจเพิ่มได้ค่อนข้างง่าย

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


1
ดูเหมือนว่าฉันจะมีปัญหาความเข้ากันได้กับ jquery.combobox และ jQuery 1.4.x ... เช่นเดียวกับปลั๊กอินส่วนใหญ่ที่ไม่ได้รับการดูแลเป็นเวลานาน ...
Lukas Eder

3
ความคิดเห็นในลิงก์แรก'หมายเหตุ: ในขณะนี้ jquery.combobox ทำงานเป็นรายการแบบเลื่อนลงไม่ใช่คอมโบแบบเต็ม ขณะนี้ไม่ยอมรับการป้อนข้อความ ' ประเภทของการเอาชนะจุดประสงค์ IMO ....
Matthew Dresser

1
ลิงก์ตายที่ sanchezsalvador.com
markashworth

53

นี่คือสิ่งที่ดูมีแนวโน้มมาก มันเป็นคำสั่งผสมที่แท้จริงคุณจะเห็นสิ่งที่คุณพิมพ์ มีคุณสมบัติที่ยอดเยี่ยมที่ฉันไม่เคยเห็นจากที่อื่น: ผลการเพจ

FlexBox


ฉันจะแนะนำ FlexBox เป็นครั้งที่สอง มีตัวเลือกรูปแบบและ UI ที่ยืดหยุ่นมากอืมมม
Ben Griswold

เวอร์ชันใหม่ (0.9.3) เพิ่งเปิดตัว FlexBox รองรับการกรอง JSON ฝั่งไคลเอ็นต์แล้ว
Noah Heldman

1
imo FlexBox ใช้สำหรับการใช้งานมากเกินไปในบางกรณี
kajo

ดูเหมือนว่าจะโหลดข้อมูลทั้งหมด (json) พร้อมกันดังนั้นอาจไม่เหมาะสมหากแหล่งข้อมูลมีบันทึกจำนวนมาก
David

ถ้าฉันเลือกหนึ่งค่าแล้วให้คลิกลูกศรมันจะแสดงเฉพาะค่าที่เลือกไม่ใช่ค่าทั้งหมด
linbo

25

ใครก็ตามที่กำลังมองหา "กล่องคำสั่งผสม" jquery ดูเหมือนจะถูกนำไปสู่คำถามนี้ โพสต์ของฉันมีไว้สำหรับผู้ที่เข้ามาในหน้านี้เพื่อค้นหากล่องคำสั่งผสม "แบบเดิม" แทนที่จะเป็นคำตอบสำหรับคำถามเดิม โซลูชันข้างต้นทั้งหมดมุ่งเน้นไปที่การใช้อินพุตเป็นวิธีในการกรองและเติมข้อความอัตโนมัติไปยังค่าที่เลือกที่มีอยู่ (เหมาะสำหรับชุดข้อมูลขนาดใหญ่)

หากคุณกำลังมองหากล่องคำสั่งผสมแบบเดิมซึ่งก็คือ "พิมพ์บางอย่างหรือเลือกจากค่าที่กำหนดไว้ล่วงหน้า" (ไม่เราจะไม่ซ่อนค่าที่ไม่ตรงกันในขณะที่คุณกำลังพิมพ์) สิ่งที่คุณทำได้ทั้งหมด ต้องทำคือ

<select id="combo4" style="width: 200px;"
            onchange="$('input#text4').val($(this).val());">
    <option>option 1</option>
    <option>option 2</option>
    <option>option 3</option>
</select>
<input id="text4"
       style="margin-left: -203px; width: 180px; height: 1.2em; border: 0;" />

ดู http://bit.wisestamp.com/uncategorized/htmljquery-editable-combo-2/

ควรจะง่ายต่อการรวมสิ่งนี้ลงในปลั๊กอินที่แปลงแท็กเลือกที่มีอยู่แม้ว่าฉันจะยังไม่เห็น

PS: ปัญหาหลักที่ฉันพบกับ "jQuery Editable Combobox" คือมันยังคงเป็นรายการที่เลือกและไม่ชัดเจนเลยที่คุณสามารถเริ่มพิมพ์สิ่งใหม่ได้



15

ตอนนี้ทางแยกใหม่ของโปรเจ็กต์ sexy-combo ซึ่งมีแนวโน้มดี: http://code.google.com/p/ufd/


ฉันชอบที่มันเปลี่ยนการเลือกเป็นคอมโบบ็อกซ์
บีตตรา

1
หลังจากตรวจสอบทุกคำแนะนำบนหน้าเว็บแล้วฉันก็ตัดสินใจเลือกข้อเสนอนี้ รวดเร็วเรียบง่ายมอบฟังก์ชันพื้นฐานที่ฉันต้องการและทำงานกับอินพุตเลือกที่มีอยู่
elwyn

ยังสามารถทำงานร่วมกับ Jquery UI Themeroller
codeulike

อันนี้เป็นเรื่องแปลกสำหรับฉัน ทำงานได้อย่างราบรื่นบน IE7 และ IE8 ซึ่งเป็นข้อกำหนด ค้นหา Infix (คำกลาง) แถบเลื่อนสำหรับรายการที่ยาวขึ้นและเล่นได้ดีกับส่วนประกอบอื่น ๆ
Alastair

นี่เป็นวิธีที่ง่ายที่สุดในการผสานรวมหากโค้ดที่มีอยู่ของคุณใช้แบบเลื่อนลง html แบบเก่า ฉันใช้อันนี้
สูงสุด

14

สำหรับชุดข้อมูลขนาดใหญ่JQuery UI Autocompleteซึ่งโดยพื้นฐานแล้วเป็น "เวอร์ชันทางการ" ของปลั๊กอินเติมข้อความอัตโนมัติของ Jorn Zaeferrer เป็นอย่างไร

ฉันยังเขียนปลั๊กอินJQuery comboboxแบบตรงซึ่งได้รับการตอบรับที่ดีจากผู้ใช้ มันไม่ได้หมายถึงชุดข้อมูลขนาดใหญ่อย่างชัดเจน ฉันคิดว่าถ้าคุณต้องการบางสิ่งที่ตัดรายการตามประเภทของผู้ใช้คุณควรใช้ปลั๊กอินเติมข้อความอัตโนมัติของ Jorn


ปลั๊กอินเติมข้อความอัตโนมัติของ Jorn Zaeferrer นั้นเรียบง่ายและยอดเยี่ยม
Jake Wilson


7

สิ่งนี้ยังมีแนวโน้ม:

JQuery Drop-Down Combo Boxบน simpletutorials.com


ดูดีทีเดียว แต่ไม่รองรับการใช้ชื่อและค่าที่แตกต่างกันอย่างที่คุณทำได้เมื่อเลือก <ตัวเลือก>
BT

1
ยังไม่รองรับกล่องคำสั่งผสมสองกล่องในหน้าเดียว
Tim Saylor

7

ส่วนประกอบ jQuery UI ComboBox / การเติมข้อความอัตโนมัติอย่างเป็นทางการอยู่ระหว่างการสร้าง ... (ก่อนหน้านี้เป็นรุ่นเบต้าสำหรับ jQuery UI 1.5.x) ดูjQuery UI Wiki

อัพเดท:

ฟังก์ชั่นการเติมข้อความอัตโนมัติตอนนี้เป็นคุณลักษณะหลักของ jQuery UI, ดูเอกสาร


ตอนนี้ใช้งานได้กับ jQuery 1.8 ฉันใช้มันค่อนข้างประสบความสำเร็จเป็นวิดเจ็ตที่ออกแบบมาอย่างดี
Boldewyn

พวกคุณประสบกับผลของการโพสต์หรือไม่? เมื่อฉันคลิกลูกศรเพื่อสลับรายการหน้าของฉันจะโพสต์และฉันได้รับการรีเฟรชหน้า ...
clockwiseq

7
คอมโบบ็อกซ์ไม่เหมือนกับการเติมข้อความอัตโนมัติ
Neil McGuigan

5

หากคุณไม่ต้องการหลายคอลัมน์เลือกก็เป็นอีกทางเลือกที่ดี MIT ได้รับอนุญาต


+1 สำหรับเลือก ดูดีและเราไม่ต้องทำการเปลี่ยนแปลงใด ๆ กับดรอปดาวน์ที่มีอยู่ด้วยข้อมูลที่มาจาก ObjectDatasource มันใช้งานได้!
Matt


3

ฉันกำลังมองหาเหมือนกัน สิ่งที่ฉันชอบที่สุดจนถึงตอนนี้คือสิ่งนี้สำหรับ ExtJs - ยกเว้นฉันยังไม่ได้ทดสอบกับ Lists ขนาดใหญ่: www.sencha.com/deploy/dev/examples/form/combos.html

นี่คืออีกอันหนึ่งที่รวดเร็วจริงๆ (!): http://jsearchdropdown.sourceforge.net/

ตัวอย่างเช่น SexyCombo ทำงานได้ค่อนข้างยอดเยี่ยม แต่เป็นวิธีที่ช้าสำหรับรายการที่ยาวขึ้น UFD พื้นบ้านของ SexyCombo นั้นเร็วกว่ามาก แต่เวลาในการเริ่มต้นยังค่อนข้างช้าสำหรับรายการขนาดใหญ่จริงๆ นอกจากฉันจะได้รับบางครั้งเล็กน้อย! "กะพริบ". แต่ฉันเดาว่าจะมีการอัปเดตบางอย่างในอนาคตอันใกล้นี้


ExtJs ทำงานได้ดีกับรายการขนาดใหญ่ (หรือใหญ่มาก) เนื่องจากรองรับการเพจและคุณสามารถสอบถามค่าในเครื่องหรือตัดสินใจที่จะส่งแบบสอบถามกลับไปที่เซิร์ฟเวอร์และส่งผลลัพธ์อีกชิ้นหนึ่ง ปัญหาของ ExtJs คือเส้นโค้งการเรียนรู้ที่สูงชัน
stivlo

3

Sexy-Combo เลิกใช้งานแล้ว มีการพัฒนาเพิ่มเติมในโครงการ Fast-Filter Dropdown ที่ไม่สร้างความรำคาญ ดูมีแนวโน้มเนื่องจากฉันมีข้อกำหนดที่คล้ายกัน

https://code.google.com/p/ufd/


แม้ว่าจะดี แต่ดูเหมือนว่าจะใช้ไม่ได้กับ jquery> 1.6 กำลังมองหาตัวเลือกอื่น ๆ
dan radu


2

ทำไมคุณไม่ลองhttp://jqueryajax.codeplex.com/ เป็นชุดของตัวควบคุม ASP.NET ที่มีแบบหล่นลงหลายคอลัมน์ด้วย


2

Activewidgets มีรูปลักษณ์ที่สวยงามมาก ไม่รู้ว่าจะทำงานได้ดีเพียงใดกับชุดข้อมูลขนาดใหญ่ http://www.activewidgets.com/ui.combo/


2

ฉันมีปัญหาเดียวกันดังนั้นฉันจึงลงเอยด้วยตัวเอง

มีระบบเทมเพลตในตัวดังนั้นคุณจึงสามารถทำให้ผลลัพธ์ออกมาเป็นแบบที่คุณต้องการได้ ทำงานบนเบราว์เซอร์หลัก ๆ ทั้งหมดและยอมรับอาร์เรย์และวัตถุ json http://code.google.com/p/custom-combobox/


2

นี่เป็นสิ่งที่ยอดเยี่ยมจริงๆ: http://www.xnodesystems.com/ช่องรายการไดนามิกไม่เพียง แต่มีความสามารถในการเติมข้อความอัตโนมัติเท่านั้น แต่ยังสามารถตรวจสอบความถูกต้องได้อีกด้วย


2

ฉันได้ลองhttp://jqueryui.com/demos/autocomplete/#comboboxแล้วและปัญหาที่เผชิญคือ:

  • การแสดงผลข้ามเบราว์เซอร์
  • ไม่สามารถส่งค่าที่กำหนดเองได้

เป็นผลให้ฉันปรับแต่งเล็กน้อยและมันก็ใช้ได้ดีสำหรับฉันใน ASP.NET MVC สคริปต์ CSS และวิดเจ็ตเวอร์ชันของฉันสามารถพบได้ที่นี่http://saplin.blogspot.com/2011/12/html-combobox-control-and-aspnet-mvc.html

ตัวอย่างการผูกโมเดล MVC กับค่าที่กำหนดเองก็มีเช่นกัน





0

ทุกสิ่งที่คุณต้องการ http://jquerycomboboxtmpl.codeplex.com/

แบบเลื่อนลงบนเทมเพลต


โปรดเพิ่มคำอธิบายอย่างน้อยสำหรับวิธีแก้ปัญหาที่คุณกำลังแนะนำและเหตุใดจึงเหมาะกับเกณฑ์จากคำถาม
mtsr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.