ฉันมี<SELECT multiple>
ฟิลด์ที่มีหลายตัวเลือกและฉันต้องการอนุญาตให้มีเพียงตัวเลือกเดียวที่เลือกในเวลาเดียวกัน แต่ผู้ใช้สามารถกดปุ่ม CTRL ค้างไว้และเลือกรายการเพิ่มเติมพร้อมกันได้
มีวิธีการทำอย่างไร? (ฉันไม่ต้องการลบ "หลายรายการ")
ฉันมี<SELECT multiple>
ฟิลด์ที่มีหลายตัวเลือกและฉันต้องการอนุญาตให้มีเพียงตัวเลือกเดียวที่เลือกในเวลาเดียวกัน แต่ผู้ใช้สามารถกดปุ่ม CTRL ค้างไว้และเลือกรายการเพิ่มเติมพร้อมกันได้
มีวิธีการทำอย่างไร? (ฉันไม่ต้องการลบ "หลายรายการ")
multiple
แอตทริบิวต์) โดยไม่สามารถเลือกหลายรายการได้ ลืมไปว่ามีการเรียกแอตทริบิวต์ที่จะทำสิ่งนี้size
ดังนั้นคำตอบยอดนิยมจึงตอบสนองฉันได้ดี :)
คำตอบ:
อย่ากำหนดให้เป็นการเลือกหลายรายการ แต่กำหนดขนาดให้เป็นเช่น:
<select name="user" id="userID" size="3">
<option>John</option>
<option>Paul</option>
<option>Ringo</option>
<option>George</option>
</select>
ตัวอย่างการทำงาน: https://jsfiddle.net/q2vo8nge/
select
ภายในdisplay: flex
คอนเทนเนอร์และทำflex-grow: 1
ตามselect
จะทำให้ถือว่าsize="3"
เป็นความสูงขั้นต่ำจากนั้นสแนปความสูงของทั้งหมดให้เลือกขนาดสูงสุดที่เป็นไปได้ภายในคอนเทนเนอร์ของคุณ jsfiddle.net/z1gypahs
หากผู้ใช้ควรเลือกเพียงหนึ่งตัวเลือกพร้อมกันเพียงแค่ลบ "หลาย" - ทำการเลือกตามปกติ:
<select name="mySelect" size="3">
<option>Foo</option>
<option>Bar</option>
<option>Foo Bar</option>
<option>Bar Foo</option>
</select>
ทำไมคุณไม่ต้องการลบmultiple
แอตทริบิวต์ จุดประสงค์ทั้งหมดของแอตทริบิวต์นั้นคือการระบุให้เบราว์เซอร์ทราบว่าสามารถเลือกค่าหลายค่าจากselect
องค์ประกอบที่กำหนดได้ หากควรเลือกเพียงค่าเดียวให้ลบแอตทริบิวต์และเบราว์เซอร์จะทราบว่าอนุญาตให้เลือกเพียงค่าเดียว
ใช้เครื่องมือที่คุณมีนั่นคือสิ่งที่มีไว้เพื่อ
คุณต้องการเพียงตัวเลือกเดียวตามค่าเริ่มต้น แต่ผู้ใช้สามารถเลือกได้หลายตัวเลือกโดยกดแป้น CTRL นี่คือ (แล้ว) ว่าตัวเลือกหลายตัวหมายถึงการทำงานอย่างไร
ดูนี่: http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select_multiple
คุณช่วยชี้แจงคำถามของคุณได้ไหม
ฉันมาที่นี่หลังจากค้นหา Google และเปลี่ยนสิ่งที่สิ้นสุด
ดังนั้นฉันแค่เปลี่ยนตัวอย่างนี้และมันจะทำงานกับ jquery ในขณะรันไทม์
$('select[name*="homepage_select"]').removeAttr('multiple')
<select name="flowers" size="5" style="height:200px">
<option value="1">Rose</option>
<option value="2">Tulip</option>
</select>
วิธีง่ายๆนี้ช่วยให้คุณได้รับรายการตัวเลือกที่มองเห็นได้ แต่สามารถเลือกได้เพียงตัวเลือกเดียว
ฉันมีข้อตกลงบางอย่างกับ select \ multi-select นี่คือสิ่งที่ทำให้ฉันเป็นเคล็ดลับ
<select name="mySelect" multiple="multiple">
<option>Foo</option>
<option>Bar</option>
<option>Foo Bar</option>
<option>Bar Foo</option>
</select>
ตอบช้า แต่อาจช่วยคนอื่นได้นี่คือวิธีดำเนินการโดยไม่ต้องลบแอตทริบิวต์ "multiple"
$('.myDropdown').chosen({
//Here you can change the value of the maximum allowed options
max_selected_options: 1
});