เราพบวิธีที่ง่ายและเหมาะสมในการทำเช่นนี้ มันข้ามเบราว์เซอร์ย่อยสลายได้และไม่ทำลายโพสต์แบบฟอร์ม ขั้นแรกให้ตั้งค่าความทึบของกล่องที่เลือกเป็น 0
.select {
opacity : 0;
width: 200px;
height: 15px;
}
<select class='select'>
<option value='foo'>bar</option>
</select>
นี่คือเพื่อให้คุณยังคงสามารถคลิกที่มัน
จากนั้นสร้าง div ด้วยขนาดเดียวกันกับกล่องที่เลือก div ควรวางใต้กล่องเลือกเป็นพื้นหลัง ใช้ {position: absolute} และ z-index เพื่อทำสิ่งนี้
.div {
width: 200px;
height: 15px;
position: absolute;
z-index: 0;
}
<div class='.div'>{the text of the the current selection updated by javascript}</div>
<select class='select'>
<option value='foo'>bar</option>
</select>
อัปเดต InnerHTML ของ div ด้วย javascript Easypeasy กับ jQuery:
$('.select').click(function(event)) {
$('.div').html($('.select option:selected').val());
}
แค่นั้นแหละ! เพียงแค่สไตล์ div ของคุณแทนการเลือกกล่อง ฉันยังไม่ได้ทดสอบโค้ดข้างต้นดังนั้นคุณอาจต้องปรับแต่งมัน แต่หวังว่าคุณจะได้รับส่วนสำคัญ
ฉันคิดว่าวิธีการแก้ปัญหานี้เต้น สิ่งที่เบราว์เซอร์ควรทำมากที่สุดคือการกำหนดปฏิสัมพันธ์กับองค์ประกอบของฟอร์ม แต่ไม่แน่นอนว่าการแสดงครั้งแรกบนหน้าเว็บเป็นอย่างไรเมื่อแบ่งการออกแบบเว็บไซต์